在Kafka当中数据是以日志的形式存在的
Kafka 的存储日志
在Kafka当中。数据在磁盘当中的存储:
- Kafka中的数据是保存在 /export/server/kafka_2.12-2.4.1/data中
- 消息是保存在以:「主题名-分区ID」的文件夹中的
- 数据文件夹中包含以下内容
这些分别对应:
文件名 | 说明 |
---|---|
00000000000000000000.index | 索引文件,根据offset查找数据就是通过该索引文件来操作的 |
00000000000000000000.log | 日志数据文件 |
00000000000000000000.timeindex | 时间索引 |
leader-epoch-checkpoint | 持久化每个partition leader对应的 LEO(log end offset、日志文件中下一条待写入消息的offset ) |
- 每个日志文件的文件名为起始偏移量,因为每个分区的起始偏移量是0,所以,分区的日志文件都以0000000000000000000.log开始的
- 默认的每个日志文件最大为:log.segment.bytes =102410241024 是为1G
- 为了简化根据 offset 查找消息,Kafka 日志文件名设计为开始的偏移量。
日志的观察模式
为了方便测试观察,新创建一个topic:「test_10m」,该topic每个日志数据文件最大为10M
bin/kafka-topics.sh --create --zookeeper node1.itcast.cn --topic test_10m --replication-factor 2 --partitions 3 --config segment.bytes=10485760
使用之