做的网站怎样打开速度快,小学做试卷的网站,企业查询官网入口,wordpress添加社交媒体日志分段#xff08;LogSegment#xff09;
Kafka的一个 主题可以分为多个分区。 一个分区可以有一至多个副本#xff0c;每个副本对应一个日志文件。 每个日志文件对应一个至多个日志分段#xff08;LogSegment#xff09;。 每个日志分段还可以细分为索引文件、日志存储…日志分段LogSegment
Kafka的一个 主题可以分为多个分区。 一个分区可以有一至多个副本每个副本对应一个日志文件。 每个日志文件对应一个至多个日志分段LogSegment。 每个日志分段还可以细分为索引文件、日志存储文件和快照文件。
每个 LogSegment 对应于磁盘上的一个日志文件和两个索引文件以及其他可能的文件(比如以 .txnindex 为后缀的事务索引文件)。索引文件包括偏移量索引文件(以 .index 为文件后缀) 和 时间戳索引文件 (以 .timeindex 为文件后缀)
每个 LogSegment 都有一个 基准偏移量 baseOffset 用来表示当前 LogSegment 中第一条消息的 offset 用来表示当前 LogSegment 中第一条消息的 offset。 日志分段LogSegment的索引文件
偏移量索引文件用来建立消息偏移量( offset ) 到物理地址之间的映射关系方便快速定位消息所在的物理文件位置 。
时间戳索引文件则根据指定的时间戳 ( timestamp) 来查找对应的偏移量信息。
Kafka中 的索引文件以稀疏索引的方式构造消息的索引它并不保证每个消息在索引文件中都有对应的索引项。
偏移量索引文件
偏移量索引项每个索引项占用 8个字节分为两个部分。
(1) relativeOffset 相对偏移量表示消息相对于 baseOffset 的偏移量占用 4个字节。当前索引文件的文件名即为 baseOffset 的值。
(2) position 物理地址也就是消息在日志分段文件中对应的物理位置 占用 4个字节。
时间戳索引文件
时间戳索引项每个索引项占用 12 个字段分为两个部分。
(1) timestamp 当前日志分段的最大时间戳。
(2) relativeOffset 时间戳所对应的消息的相对偏移量。
时间戳索引文件中包含若干个时间戳索引项每个追加的时间戳索引项中的 timestamp 必须大于之前追加的索引项的 timestamp。
资料来源
《深入理解Kafka核心设计与实践原理》