深入Kafka
分类:
文章
•
2025-04-18 16:55:22
集群成员关系

控制器
- 控制器的作用: 除具有一般broker的功能之外,还负责分区首领的选举
- 控制器的选举: 各broker向ZK中/controller注册临时节点
- 分区首领的选举: broker加入时,同步副本;broker离开时,选举新的分区首领
分区复制
- 首领副本 :每个分区都有一个首领副本。首领副本负责处理理所有生产者和消费者的请求
- 跟随者副本:首领以外的副本都是跟随者副本。跟随者副本不处理理来自客户端端请求,它们唯一的任务就是从首领那里负责消息,保持与首领一致的状态。
- AR:Assigned Replicas,所有副本
- ISR:In-Sync Replicas,已同步的副本
- OSR:Out-Of-Sync Replicas,掉队的副本
- AR = ISR + OSR
物理存储
- Kafka会将数据持久化到文件,文件目录以分区来组织,每个分区下有多个文件,每个文件称作一个片段,每个片段包含1G或一周的数据,以较小的值为准。
- 保留策略:数据被删除之前可以保留多长时间,或者清理数据之前可以保留的数据量大小。
- 3类文件:数据文件、索引文件、时间索引文件。
基本概念

刷盘

文件滚动

- 默认情况下,每个片段包含1G或7天的数据,以较小的值为准;如果达到片段上限,就关闭当前文件,并打开一个新文件
数据清除策略
- log.cleanup.policy:⽇志清除策略(delete/compact)
- log.retention.bytes:⽇志保留量
- log.retention.hours:⽇志保留时间
索引
- 3步定位message
1)⼆二分查找index file
2)通过index file定位物理理地址
3)顺序扫描 segment file
- 稀疏索引 vs. 稠密索引
消息格式
