目录
Kafka读写流程
LEO log end offset
物理存储 稠密索引 稀疏索引
Kafka物理存储
深入了解读数据流程
删除消息
Kafka读写流程
写流程:
- 通过zookeeper 找leader
 - 分配开始读写
 - Isr中的副本同步数据,并返回给leader ack
 - 返回给 分片ack
 
读流程:
- 通过zookeeper 找leader
 - 通过zookeeper 找到 消费者对应的offset
 - 然后从offset顺序拉去
 - 提交offset 自动提交 手动提交
 
LEO log end offset
文件默认最大1个G
              
物理存储 稠密索引 稀疏索引


- 稀疏索引需要的空间小,占用内存也小,但是查询次数更多,速度较慢。
- 稠密索引占用空间大,但是查询次数更少,速度更快。
- Offset 找对应的数据
 - 全局offset 找到对应的分片,分片对应offset 对应多个文件每个文件对应单独的offset
 - 对应稀疏索引 俩层索引寻址
 
分片油多个文件组成,每个文件设置大小默认1G


- Segment 段包含 index log timeindex snapshot
 
Kafka物理存储
- Topic
 - Parition
 - Segment 
  
- Log数据文件
 - Index索引文件
 - Timeindex 稀疏索引
 
 
深入了解读数据流程
- 消费者offset 针对一个 分片找到 全局offset
 - 根据这个全局offset找到对应的segment组的局部offset
 - 根据全局的offset可以从index稀疏索引找到对应数据的位置
 - 开始顺序读取
 
删除消息
Kafka定期清理数据,一次删除对应的 segment段的数据
Kafka日志管理器 会根据配置删除
ok
持续更新



















