引言
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获取到的值是一致的。