跳表
Log 使用 SkipList 对 LogSegment 进行管理
key: baseOffset
value: LogSegment 对象
创建 Log Segment 的条件
-
当前 Active Segment 的文件大小加上本次待追加的消息集合大小,超过了配置的最大长度。
-
当前 Active Segment 的寿命超过了配置的最长存活时间。
-
索引文件大小超过了配置的最大长度
LogSegment 中的文件类型
Log Index
Kafka 以稀疏索引的方式构造消息的索引
- Offset Index,建立消息偏移量 offset 到物理地址之间的映射关系。
- Time Index,记录时间戳和相对偏移量的对应关系。