kafka 索引文件执行流程
2022-02-25 10:40:11 0 举报
kafka 日志索引文件查找流程
作者其他创作
大纲/内容
根据postion查找
.log文件实际消息存储
1. 根据分段找到对应的区间文件 : baseOffset=250
.timeindex文件负责时间戳查找
baseOffset=0
000250.index
baseOffset=355
largestTimeStamp=1645711641641
查找offset为266的消息
.timeindex索引文件
将时间戳和每个日志分段文件的最大时间戳largestTimeStamp逐一对比,直到找到不小于查询时间戳的日志分段文件。
baseOffset=460
firstOffset
position
0
6
156
8
250
14
459
20
838
日志分段文件: 由于生产者生产的消息会不断追加到log文件末尾,为了防止文件过大导致定位数据低下采用分段存储
.index文件负责offset查找
000355.index
000100.index
时间戳
相对偏移量[relativeOffset]
1645711641341
1645711642342
1645711643343
22
1645711649444
26
.index索引文件
查找时间戳1645711641444
largestTimeStamp=1645711641341
largestTimeStamp=1645711641234
baseOffset=100
largestTimeStamp=1645711641325
000460.index
baseOffset=250
日志分段因为日志文件存储的都是批量的offset,所以先根据日志分段的基础偏移量计算反推到索引文件从索引文件定位到存储的位置,里面就包含了具体的那条消息
日志文件
日志文件类型
2. 首先知道了该索引文件的起始偏移量,然后又进行计算得到索引文件的相对偏移量比如 : 266-250=16这样就得到了物理地址:459
000000.index
largestTimeStamp=1645711641451
物理地址[position]
155
646
0 条评论
下一页
为你推荐
查看更多