kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息

目录

Kafka读写流程

LEO log end offset

物理存储 稠密索引 稀疏索引

Kafka物理存储

深入了解读数据流程

删除消息


Kafka读写流程

写流程:

  1. 通过zookeeper 找leader
  2. 分配开始读写
  3. Isr中的副本同步数据,并返回给leader ack
  4. 返回给 分片ack

读流程:

  1. 通过zookeeper 找leader
  2. 通过zookeeper 找到 消费者对应的offset
  3. 然后从offset顺序拉去
  4. 提交offset 自动提交 手动提交

LEO log end offset

文件默认最大1个G

             

物理存储 稠密索引 稀疏索引

kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息_第1张图片

kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息_第2张图片

- 稀疏索引需要的空间小,占用内存也小,但是查询次数更多,速度较慢。

- 稠密索引占用空间大,但是查询次数更少,速度更快。  

  1. Offset 找对应的数据
  2. 全局offset 找到对应的分片,分片对应offset 对应多个文件每个文件对应单独的offset
  3. 对应稀疏索引 俩层索引寻址

分片油多个文件组成,每个文件设置大小默认1G

kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息_第3张图片

kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息_第4张图片

  1. Segment 段包含 index log  timeindex snapshot

Kafka物理存储

  1. Topic
  2. Parition
  3. Segment
    1. Log数据文件
    2. Index索引文件
    3. Timeindex 稀疏索引

深入了解读数据流程

  1. 消费者offset 针对一个 分片找到 全局offset
  2. 根据这个全局offset找到对应的segment组的局部offset
  3. 根据全局的offset可以从index稀疏索引找到对应数据的位置
  4. 开始顺序读取

删除消息

Kafka定期清理数据,一次删除对应的 segment段的数据

Kafka日志管理器 会根据配置删除

ok

持续更新

你可能感兴趣的:(kafka,java,开发语言)