Kafka文件存储机制

2021-12-29  本文已影响0人  CodeYang

笔记来源于尚硅谷视频课程

在server.properties文件中配置了log.dir属性,该目录存储日志文件

log.dirs=/usr/local/kafka/kafka_2.13/logs

在生产者创建主题时,会在该目录下创建 “topic名称”+“-”+“分区号” 拼接的目录,该目录存储的是消息数据。

例如,主题名为 t01,对应会创建 t01-0,t01-1目录

image.png image.png
 由于生产者生产的消息会不断追加到 log 文件末尾,为防止 log 文件过大导致数据定位

效率低下,Kafka 采取了分片索引机制,将每个 partition 分为多个 segment。每个 segment

对应两个文件——“.index”文件和“.log”文件。这些文件位于一个文件夹下,该文件夹的命名

规则为:topic 名称+分区序号。例如,first 这个 topic 有三个分区,则其对应的文件夹为 first-

0,first-1,first-2。

00000000000000000000.index
00000000000000000000.log
00000000000000170410.index
00000000000000170410.log
00000000000000239430.index
00000000000000239430.log

index 和 log 文件以当前 segment 的第一条消息的 offset 命名。下图为 index 文件和 log

文件的结构示意图

image.png

index文件用于存储索引、log文件用于存储消息,索引文件中的元数据指向对应数据文件中 message 的物理偏移地址。

上一篇下一篇

猜你喜欢

热点阅读