kafka常用目录文件解析

文章目录

本章内容主要介绍kafka内的一些重要目录和文件,并解释其中的存储的内容和作用

1、消息日志文件(.log)

路径:/tmp/kafka/broker2/data/

根据上图解释,如果当前创建一个主题叫stream-topic1,则会创建三个(配置分片数)主题目录stream-topic1-0、stream-topic1-1、stream-topic1-2,进入其中一个目录stream-topic1-0,里面名字相同的.log、.index和.timeindex文件就是Segment

2、消费者偏移量文件(__consumer_offsets)

路径:/tmp/kafka/broker2/data

作用:在kafka的broke/data下存在50个__consumer_offsets文件,这些文件和普通的 topic 相同。它们作用之一就是保存 consumer 提交的位移

3、偏移量索引文件(.index)

路径:/tmp/kafka/broker2/data/stream-topic1-2

作用:与 .log 文件对应,用于快速定位某个偏移量的消息在 .log 文件中的位置

4、时间索引文件( .timeindex)

路径:/tmp/kafka/broker2/data/stream-topic1-2

作用:基于消息时间戳的索引,允许根据时间范围快速检索消息。

5、检查点引文件( .checkpoint)

路径:/tmp/kafka/broker2/data

在这个路径下可以看到有几个checkpoint文件

作用:发生故障时,Kafka 可以从检查点恢复处理,确保一致性。

  • replication-offset-checkpoint:已经确认复制给其他副本的offset,也就是HW
  • recovery-point-offset-checkpoint:负责记录topic已经被写入磁盘的offset
  • cleaner-offset-checkpoint:存了每个log的最后清理offset
  • log-start-offset-checkpoint:文件对应logStartOffset,用来标识日志的起始偏移量

6、事务日志文件(.transaction.log)

路径:.transaction.log文件通常位于Kafka安装目录下的log.dirs指定的目录中

作用:记录事务的提交或回滚状态,确保事务消息的一致性和可靠性

7、配置文件(server.properties)

路径:容器内 /opt/kafka/config

powershell 复制代码
#每个Kafka节点必须有唯一的标识符
broker.id=1 
#指定Kafka消息存储的目录
log.dirs=/kafka/data
#设置Kafka服务的监听地址及端口
listeners=PLAINTEXT://:9092
#指定默认的分区数量,分区越多,Kafka的并行处理能力越强
num.partitions=1
num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

#设置日志保留的时间
log.retention.hours=168
#当内容文件达到这个配置的字节数大小时,消息存储的内容文件就会分隔,新增一个内容文件(.log  .index  .timeindex)来存储内容
log.segment.bytes=1073741824
#清理器检查日志符合被删除条件的轮询时间
log.retention.check.interval.ms=300000
相关推荐
禅与Bug的修复艺术2 分钟前
JAVA后端开发常用的LINUX命令总结
java·linux·面试·java面试·后端开发·java后端·面试经验
佩奇的技术笔记7 分钟前
Java学习手册:Java开发常用的内置工具类包
java
brzhang11 分钟前
代码即图表:dbdiagram.io让数据库建模变得简单高效
前端·后端·架构
Jamesvalley16 分钟前
【Django】新增字段后兼容旧接口 This field is required
后端·python·django
triticale19 分钟前
【蓝桥杯】P12165 [蓝桥杯 2025 省 C/Java A] 最短距离
java·蓝桥杯
Felven20 分钟前
A. Ideal Generator
java·数据结构·算法
欧先生^_^22 分钟前
Spark 的一些典型应用场景及具体示例
大数据·分布式·spark
秋野酱28 分钟前
基于 Spring Boot 的银行柜台管理系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
JAVA学习通42 分钟前
JAVA多线程(8.0)
java·开发语言
不当菜虚困44 分钟前
JAVA设计模式——(七)代理模式
java·设计模式·代理模式