引言

kafka的每个partition下都有以下5类文件

# 其中数字123456只是举个栗子
00000000000000123456.index
00000000000000123456.log
00000000000000123456.snapshot
00000000000000123456.timeindex
leader-epoch-checkpoint

下面根据我的查阅资料和理解,总结以下各个文件结构。其中index、log、timeindex文件是二进制文本,可以使用如下kafka工具查看内容。checkpoint文件可以直接查看

bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log

index

TODO

log

TODO

snapshot

snapshot:是kafka对幂等型或者事务型producer所生成的快照文件。

#snapshot打开是如下字符,未知具体含义
HgK

timeindex

TODO

leader-epoch-checkpoint

0 #版本号
1 #下面的记录行数
29 2485991681 #leader epoch ,可以看到有两位值(epoch,offset)。
## epoch表示leader的版本号,从0开始,当leader变更过1次时epoch就会+1
## offset则对应于该epoch版本的leader写入第一条消息的位移。可以理解为用户可以消费到的最早数据位移。与kafka.tools.GetOffsetShell --time -2获取到的值是一致的。

文章参考及引用

  1. kafka Log存储解析以及索引机制
  2. Kafka水位(high watermark)与leader epoch的讨论
  3. 尝试深入理解Kafka的工作特性
Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐