透彻理解Kafka系列
从本专栏开始,我将对Kafka这一分布式消息中间件的底层源码进行详细讲解,我主要分Producer、Consumer、Broker三部分进行讲解。作为一款优秀的消息引擎,Kafka 的架构设计有很多为人称道的地方,掌握了这些原理将极大地提升我们自身的系统架构能力和代码功力。即使你不使用 Kafka,也可以借鉴其优秀的设计理念,提升你在其他框架上的系统架构能力。
通常来说,阅读大型项目的源码无外乎两种方法。
- 自上而下(Top-Down):从最顶层或最外层的代码一步步深入。通俗地说,就是从 main 函数开始阅读,逐渐向下层层深入,直到抵达最底层代码。这个方法的好处在于,你遍历的是完整的顶层功能路径,这对于你了解各个功能的整体流程极有帮助。
- 自下而上(Bottom-Up):跟自上而下相反,是指先独立地阅读和搞懂每个组件的代码和实现机制,然后不断向上延展,并最终把它们组装起来。该方法不是沿着功能的维度向上溯源的,相反地,它更有助于你掌握底层的基础组件代码。
这两种方法各有千秋,我阅读源码一般会将两者结合起来,即先弄明白最细小单位组件的用途,然后再把它们拼接组合起来,掌握组件组合之后的功能。
此外,开源框架的官方文档也是一个非常好的学习资源,便于我们从整体上理解框架的功能,然后围绕功能点再深入到源码中,理解底层原理。
本专栏的主要参考资料如下:
实战篇
实战篇主要从功能上Kafka进行介绍,本部分包含以下文章:
- 透彻理解Kafka(1)——整体架构
- 透彻理解Kafka(2)——消息存储:日志格式
- 透彻理解Kafka(3)——消息存储:零拷贝
- 透彻理解Kafka(4)——ISR机制
- 透彻理解Kafka(5)——通信机制:多路复用
- 透彻理解Kafka(6)——集群控制:Controller
- 透彻理解Kafka(7)——Producer:核心原理
- 透彻理解Kafka(8)——Consumer:核心原理
- 透彻理解Kafka(9)——Consumer:协调器
- 透彻理解Kafka(10)——时间轮调度
- 透彻理解Kafka(11)——实战案例:集群规划
源码篇
源码篇主要通过分析Kafka的源码,本部分包含以下文章:
- Kafka源码分析(1)——源码环境搭建
- Kafka源码分析(2)——Producer:初始化
- Kafka源码分析(3)——Producer:Metadata集群元数据
- Kafka源码分析(4)——Producer:Partitioner分区器
- Kafka源码分析(5)——Producer:RecordAccumulator缓冲区
- Kafka源码分析(6)——Producer:Sender线程——Batch筛选
- Kafka源码分析(7)——Producer:Sender线程——Broker连接检查
- Kafka源码分析(8)——Producer:Sender线程——ClientRequest请求缓存
- Kafka源码分析(9)——Producer:Sender线程——Selector轮询
- Kafka源码分析(10)——Producer:NIO通讯——写请求拆包
- Kafka源码分析(11)——Producer:NIO通讯——读响应拆包和粘包
- Kafka源码分析(12)——Producer:超时问题
- Kafka源码分析(13)——Broker:整体架构
- Kafka源码分析(14)——Broker:网络层——Acceptor线程
- Kafka源码分析(15)——Broker:网络层——Processor线程
- Kafka源码分析(16)——Broker:网络层——RequestChannel和RequestHandler
- Kafka源码分析(17)——Broker:API层——KafkaApis
- Kafka源码分析(18)——Broker:日志子系统——整体架构
- Kafka源码分析(19)——Broker:日志子系统——Log
- Kafka源码分析(20)——Broker:日志子系统——LogSegment
- Kafka源码分析(21)——Broker:日志子系统——索引
- Kafka源码分析(22)——Broker:副本同步——Follower侧整体流程
- Kafka源码分析(23)——Broker:副本同步——Leader侧整体流程
- Kafka源码分析(24)——Broker:副本同步——延迟读写
- Kafka源码分析(25)——Broker:集群管理——KafkaController
- Kafka源码分析(26)——Broker:集群管理——Topic创建
- Kafka源码分析(27)——Broker:集群管理——分区重分配
- Kafka源码分析(28)——Consumer:GroupCoordinator协调器
正文到此结束
感谢赞赏~