发送到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...LogSegment
所在文件: core/src/main/scala/kafka/log/LogSegment.scala
作用: 封装对消息落地后的log和index文件的所有操作
类定义: