kafka数据检索_Kafka日志分段与消息查找

Kafka作为一个消息中间件(后面Kafka逐渐转向一个流失处理平台KafkaStream),消息最终的存储都落在日志中。

Kafka的消息最终发送是以topic下的分区为最终目标的,因此Kafka的日志存储也是以分区为单位。

配置文件中log.dir参数决定了kafka数据文件的存放目录,该参数可以在kafka配置文件中进行配置。

上图给出了三个目录,代表Topic名称为message-store的三个分区,三个目录下面分别存储了三个分区的数据文件,从目录可以看出,分区目录的创建规则是TopicName-分区编号。下面我们挑选0分区,看一下下面存储了哪些文件。

LogSegement(日志段)

Kafka中写入日志的方式是以顺序追加的方式写入的,当日志文件达到一定大小就会做切分,形成一个新的日志文件,这里可以把一个一个的日志文件作为一个日志段。日志段的引入方便了Kafka数据的查询(二分查找)与定位。

日志段分为活跃日志段和非活跃日志段,只有活跃日志段(当前日志段,一个分区只可能存在一个)可以被写入和读取,非活跃日志段只能被读取

日志文件有很多后缀,如上图所述有.index、.log、.snapshot、.timeindex

类别

作用

.index

偏移量索引文件

.log

日志文件

.snapshot

日志快照

.timeindex

时间戳索引文件

leader-epoch-checkp

你可能感兴趣的:(kafka数据检索)