位置
server.properties配置文件中通过log.dir指定日志存储目录
log.dir/{topic}-{partition}
核心文件
.log
存储消息的日志文件,固定大小为1G,写满后会新增一个文件,文件名表示当前日志文件记录的第一条消息的偏移量。
.index
以偏移量为索引来记录对应的.log日志文件中的消息偏移量
.timeindex
以时间戳为索引来记录对应的.log日志文件中的消息偏移量
partition.metadata
记录当前Partition所属的cluster和Topic
leader-epoch-checkpoint
和epoch机制相关
index和timeindex加速读取log消息日志
index和timeindex都是以相对偏移量的方式建立log消息日志的数据索引。比如 0000.index和0550.index中记录的索引数字,都是从0开始的。表示相对日志文件起点的消息偏移量。而绝对的消息偏移量可以通过日志文件名 + 相对偏移量得到。
这两个索引并不是对每一条消息都建立索引。而是Broker每写入40KB的数据,就建立一条index索
引。
Kafka的消费者通过这两个索引能够指定从某一个offset或者某一个时间点读取消息。