對源碼的學習不僅能加深自我的内功,還可能為kafka社群做出自己的貢獻。我打算從如下幾個方面開啟學習之旅,本篇主要是列出所學内容的大綱,後續幾篇慢慢為其增磚添瓦。
一、日志子產品
1.消息檔案對象的儲存實作;
2.搞懂高水位機制的實作;
3.常見日志操作大全;
4.改進版二分查找算法的應用;
5.位移索引和時間戳索引的異同;
二、請求處理子產品
- kafka請求隊列實作;
- kafka底層NIO通信機制實作原理;
- Data-plane和Control-plane設計原了解析;
- 請求處理全流程源碼分析;
- Kafka請求處理源碼入口詳解;
三、Controller子產品
- Controller請求通道器的實作;
- kafka叢集中繼資料;
- 單線程+事件隊列模型的實作;
- Controller選舉機制詳解;
- Controller在叢集中的作用;
四、狀态機子產品
- Topic删除流程揭秘;
- 副本狀态機實作原理初探;
- 分區狀态機實作原理初探;
五、延遲操作子產品
- O(n)時間輪算法設計;
- 延遲操作實作機制介紹;
六、副本管理子產品
- Follower備份機制闡述;
- 讀寫副本流程賞析;
- 副本管理器操作副本詳解;
- Broker同步中繼資料緩存原理;
七、消費者組管理
- 消費者組中繼資料的定義;
- 中繼資料管理機制介紹;
- 組中繼資料管理器設計原了解析;
- 探究__consumer_offsets主題内幕;
- 消費者組管理全流程解析;
- Coordinator選舉機制介紹;
歡迎大家點個在看,分享至朋友圈
記錄技術記錄我