透彻理解Kafka系列 消息中间件

透彻理解Kafka系列

从本专栏开始,我将对Kafka这一分布式消息中间件的底层源码进行详细讲解,我主要分**Producer**、**Consumer**、**Broker**三部分进行讲解。作为一款优秀的消息引擎,Kafka 的架构设计有很多为人称道的地方,掌握了这些原理将极大地提升我们自身的系统架构能力和代码功力。即使你不使用 Kafka,也可以借鉴其优秀的设计理念,提升你在其他框架上的系统架构能力。
阅读全文

Kafka源码分析(二八)——Consumer:GroupCoordinator协调器

本章主要对GroupCoordinator协调器的底层原理进行了讲解。Kafka Consumer的核心无非就是三块:分区分配、offset管理、底层通信。分区分配的核心就是GroupCoordinator,底层通信的原理和Producer类似,offset管理主要涉及HW、LEO。 至此,整个Kafka源码分析系列我就讲完了,剩余的很多边边角角的内容和细节读者可以自己去研读源码。
阅读全文

Kafka源码分析(二七)——Broker:集群管理——分区重分配

本章主要对Kafka的分区重分配流程和底层实现原理进行了讲解,分区重分配本质在于数据复制,先增加新的副本,然后进行数据同步,最后删除旧的副本来达到最终目的。 数据复制会占用额外的资源,所以,分区重分配一定要在低峰值时期执行。另外,可以减小重分配的粒度,以小批次的方式来操作是一种可行的解决思路 。
阅读全文

Kafka源码分析(二一)——Broker:日志子系统——索引

本章对Kafka中的索引进行了深入讲解。有两个重点: AbstractIndex:里面的 mmap 变量是实现索引机制的核心,Kakfa采用了内存映射文件实现了索引的写入,极大提升了IO性能; 改进版二分查找算法:所有索引项分成两个部分:热区(Warm Area)和冷区(Cold Area),在这两个区域内执行二分查找算法,从而提升页缓存的使用率,避免缺页中断(Page Fault)问题。
阅读全文
本文目录
    Loading...