对源码的学习不仅能加深自我的内功,还可能为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选举机制介绍;
欢迎大家点个在看,分享至朋友圈 记录技术记录我