Kafka 0.10 DelayedTaskQueue的用法和实现
DelayedTaskQueue
是在ConsumerNetworkClient类中使用,是Kafka自己实现的一个很重要的数据结构。
- 官方解释:延时队列,Tracks a set of tasks to be executed after a delay.
- 我的理解:从DelayedQueue中把请求拿出来发送出去(只有时间到了,Task才能从Queue中拿出来)。
与Java的
DelayQueue
有什么不同?DelayQueue
,无界的阻塞队列,和普通的队列不同的是:里面的元素只有时间过期了之后才能取出来,头元素是已经过期的元素中最早过期的。如果没有过期的元素,则poll方法返回null.但是size方法返回的所有的元素,包括过期的和没有过期的。
1.内部数据结构
主要是:PriorityQueue
(支持排序的Queue)
TODO
posted on 2017-02-10 09:45 BYRHuangQiang 阅读(5275) 评论(0) 编辑 收藏 举报