Kafka学习(10)- kafka使用Java开发-6-log日志说明

本文深入探讨了Kafka的日志管理机制,包括如何通过segment file进行数据存储与索引,以及如何根据日志大小和时间进行切分与合并,确保数据高效存储与快速检索。

目录:

  1. 日志
    1. 索引文件(segment file)
    2. 数据文件(message file)

一.日志

  1. kafak在我们指定的log.dirs目录下,会创建一些文件夹(segment(字段、段、片) file
    1. 由主题名-分区名组成的文件夹。
    2. 分区文件夹由两部分组成:
      1. 0000000000000000000.index  segment索引文件
      2. 0000000000000000000.log     数据文件
    3. message文件(数据文件),会根据log的大小,进行切分。
      日志允许序列化的追加到最后一个文件中.当文件大小达到配置的大小(默认 1G)时,会生成一个新的文件.日志中有两个配置参数: M 是在 OS 强制写文件到磁盘之前的消息条数, S 是强制写盘的秒数.这提供了一个在系统崩溃时最多丢失 M 条或者 S 秒消息的保证.
      1. 00000000000000778894.index
      2. 0000000000000077894.log
    4. segment文件命名规则:partion全局的第一个segment从0开始,后续每个segment文件名为上一个partion的最大offset(偏移message数)。数值最大为64位long大小,19位数字字符长度,没有数字的话用0填充。
    5. 在kafka的设计中,将offset值作为了文件名的一部分


  2. 在kafka中因为数据是存储在本地硬盘,并没有像hdfs的那样的分布式存储,就会产生硬盘空间不足的情况
    1. 可以采用删除或者合并的方式进行处理
    2. 可以通过时间来删除、合并:默认7天(一般公司都是15天、30天)
    3. 可以通过字节大小、合并
      1. 如果是在server.properties里面设置,将在没有特殊指定参数的topic中,所有topic生效
      2. 相同的key,保存offset值最大的(最新的消息记录)
        合并解析图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值