发送到Kafka的消息最终都是要落盘存储到磁盘上;
本章涉及到的类:
OffsetIndex;
LogSegment;
----
OffsetIndex类
所在文件: core/src/main/scala.../kafka/log/OffsetIndex.scala
作用: 我们知道所有发送到kafka的消息都是以Record的结构(Kafka中Message存储相关类大揭密)写入到本地文件, 有写就要有读...,读取时一般是从给定的offset开始读取,这个offset是逻辑offset, 需要转换成文件的实际偏移量, 为了加速这个转换, kafka针对每个log文件,提供了index文件, index文件采用稀疏索引的方式..., 只记录部分log offset到file position的转换, 然后还需要在log文件中进行少量的顺序遍历, 来精确定位到需要的Record;
index文件结构: 文件里存的是一条条的log...offset与file position的映射, 每条记录8个字节,前4个字节是log offset, 后4个字节是file position, 这样的每一条映射信息我们可以称为是一个slot
读写方式