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 |