Kafka Broker是如何保存消息的?_分布式

介绍

# 创建topic 副本数为3 分区数位3
./kafka-topics.sh --create --zookeeper s1:2181 --replication-factor 3 --partitions 3 --topic test

# 创建topic 副本数为1 分区数位3
./kafka-topics.sh --create --zookeeper s1:2181 --replication-factor 1 --partitions 3 --topic order

s1

Kafka Broker是如何保存消息的?_zookeeper_02


s2

Kafka Broker是如何保存消息的?_java_03

s3

Kafka Broker是如何保存消息的?_zookeeper_04


每个分区下包含哪些文件?

Kafka Broker是如何保存消息的?_分布式_05

文件名为起始的offset

文件

作用

*.log

日志文件,存储消息

*.index

索引文件,存储位移索引

*.timeindex

索引文件,存储时间戳索引

索引文件是按照位移和时间戳升序排序的,使用索引会用二分查找,事件复杂度为O(longN)

参数名

描述

默认值

log.segment.bytes

每个日志段文件的大小

1GB

log.index.interval.bytes

在日志文件中写入多少条数据,就要在索引文件写一条索引,默认是4kb,所以索引本身是稀疏索引

4kb

log.retention.hours

消息保留多少个小时

7天

参考博客

[1]