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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM