6.kafka--日志存储

文章目录

消息日志存储

server.properties中配置了存储log的目录

log.dirs=/opt/server/kafka/kafka_2.12-3.0.0/kafka-logs-1

以first主题为例,该主题有4个分区,3个副本

[root@node2 kafka-logs-1]# ../bin/kafka-topics.sh --bootstrap-server node1:9092 --topic first --describe
Topic: first    TopicId: IcU6kbglSSWOkruuSmgryg PartitionCount: 4       ReplicationFactor: 3    Configs: segment.bytes=1073741824
        Topic: first    Partition: 0    Leader: 2       Replicas: 2,0,1 Isr: 2,1,0
        Topic: first    Partition: 1    Leader: 0       Replicas: 0,1,2 Isr: 2,1,0
        Topic: first    Partition: 2    Leader: 1       Replicas: 1,2,0 Isr: 2,1,0
        Topic: first    Partition: 3    Leader: 2       Replicas: 2,1,0 Isr: 2,1,0

那么first的数据再kafka-logs-1中显示为:

drwxr-xr-x. 2 root root 204 1月 30 11:05 first-0
drwxr-xr-x. 2 root root 204 1月 30 11:34 first-1
drwxr-xr-x. 2 root root 204 1月 30 11:43 first-2
drwxr-xr-x. 2 root root 167 1月 30 11:05 first-3

每个分区中都有.log .index .timeindex文件

[root@node2 kafka-logs-1]# cd first-0
[root@node2 first-0]# ll
总用量 20
-rw-r–r–. 1 root root 10485760 1月 30 11:34 00000000000000000000.index
-rw-r–r–. 1 root root 71 1月 30 11:03 00000000000000000000.log
-rw-r–r–. 1 root root 10485756 1月 30 11:34 00000000000000000000.timeindex
-rw-r–r–. 1 root root 10 1月 30 11:04 00000000000000000000.snapshot
-rw-r–r–. 1 root root 10 1月 30 11:05 leader-epoch-checkpoint
-rw-r–r–. 1 root root 43 1月 16 18:24 partition.metadata

日志分段存储
Kafka 一个分区的消息数据对应存储在一个文件夹下,以topic名称+分区号命名,消息在分区内是分段(segment)存储,每个段的消息都存储在不一样的log文件里,这种特性方便old segment file快速被删除,kafka规定了一个段位的 log 文件最大为 1G,做这个限制目的是为了方便把 log 文件加载到内存去操作:

00000000000000000000.index
部分消息的offset索引文件,kafka每次往分区发4K(可配置)消息就会记录一条当前消息的offset到index文件(稀疏索引),如果要定位消息的offset会先在这个文件里快速定位,再去log文件里找具体消息。

00000000000000000000.timeindex
消息的发送时间索引文件,kafka每次往分区发4K(可配置)消息就会记录一条当前消息的发送时间戳与对应的offset到timeindex文件(稀疏索引),如果需要按照时间来定位消息的offset,会先在这个文件里查找。

消息存储文件,主要存offset和消息体
00000000000000000000.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值