kafka分层时间轮实战和分析
之前分析了定时任务的数据结构演进,其中终极方案就是kafka的分层时间轮。现在实际编写一下kakfa的分层时间轮,并分析数据。
代码说明
代码部分,直接按kafka 0.11.0版本进行编写,给关键语句都加了自己的注释。
java | scala |
---|---|
Poller | kafka.utils.timer.TimerTest |
SystemTimer | kafka.utils.timer.SystemTimer(Timer里) |
Timer | kafka.utils.timer.Timer(trait Timer) |
TimerTask | kafka.utils.timer.TimerTask(trait TimerTask) |
TimerTaskEntry | kafka.utils.timer.TimerTaskEntry(TimerTaskList里) |
TimerTaskList | kafka.utils.timer.TimerTaskList |
TimingWheel | kafka.utils.timer.TimingWheel |