Kafka日志索引

前言

Kafka中的索引文件以稀疏索引(sparse index)的方式构造消息的索引,并不保证每个消息在索引中都有对应的索引项。

每当写入一定量(由Broker端参数log.index.interval.bytes指定,默认值4K),偏移量索引文件、时间戳索引文件分别增加一个偏移量索引项和时间戳索引项,log.index.interval.bytes的值,对应地可以缩小或增加索引项的密度。

稀疏索引是通过MappedByteBuffer将索引文件映射到内存中去,偏移量索引文件是偏移量是单调递增的,使用二分查找法去查找定位偏移量。

偏移量索引

偏移量索引项的格式:

  • relativeOffset:相对偏移量,即表示消息相对于baseOffset的偏移量;
  • position:物理地址;

使用kafka-dump-log.sh脚本来解析.index文件,示例如下 :

时间戳索引

偏移量索引项的格式:

  • timestamp:当前日志分段最大的时间戳;
  • relativeOffset:时间戳所对应的消息的相对偏移量;

 

posted @ 2020-11-23 10:05  lenomail  阅读(372)  评论(0编辑  收藏  举报