适用用采用"窗口机制"控制消息处理速度的场景,窗口机制的优势是能自动调节生产者与消费者处理能力。使用时,处理消息前将消息put到窗口,消息被成功(或失败)处理后从窗口移除。
注意:窗口大小为初始化后的固定值不会变化,当窗口达到临界值时,不支持相同Key的元素更新。
功能点:
- 支持设定一个过期时间,元素在超过一定时长后,会自动从窗口清除,采用DelayQueue实现;
- 清除过期元素支持自定义回调函数来做清除后处理工作,比如更新数据库状态;
- 当窗口达到临界值大小时,不接受新的元素,且会触发自定义回调操作,可用于消息处理的担保机制。