【问题排查】kafka0.10.x过期数据不会自动删除问题

kafka 专栏收录该内容
4 篇文章 0 订阅

摘要

线上环境kafka集群空间一共是8TB*12(disk)*4(node)=384TB,容量算是非常充裕了,而且每个topic设置的数据过期时间都是15天,但是发现磁盘容量已经80%。预估了下每天的数据增量,存满80%至少得5个月的数据。是过期数据没有删除吗?还是配置不起效?还是其他原因。

问题情况

检查了多个topic 节点上kafka-logs目录文件夹中的数据情况,发现如下情况。
1.绝大多数topic最早的数据确实是只保留15天。说明配置确实是起效的。
2.有个别topic数据保留了半年以上的。

运行命令行查看最早的数据

./kafka-console-consumer.sh --bootstrap-server brokers:port --topic mytopic --from-beginning --property print.timestamp=true

通过数据发现最早数据的时间戳是2020年,有的时间戳还有-1。

问题原因

查看kafka的文档upgrade_10_1_breaking
The log retention time is no longer based on last modified time of the log segments. Instead it will be based on the largest timestamp of the messages in a log segment.
日志保留的时间0.10.1之前是根据文件的最后修改时间,即linux系统时间。0.10.1修改为kafka消息中的timestamp时间。而且删除日志文件时是根据最早文件中时间戳最大的。
其中我的一个topic最早的日志文件显示是7个月前,而且这个日志文件中最大的时间戳是2020年,最早的日志文件无法删除,所以后面的文件kafka一直也不会删除。
时间戳错乱乱问题应该是开发早期不注意,或者写错导致。

解决问题

知道了上面的原因,需要从来修改两个方面。
1.让开发确认写进kafka的时间戳都是正确的。
2.写个shell脚本将几台机器上1个月前的数据全部删除,然后重启kafka。

必须要重启,因为kafka进程中缓存了一些日志数据,也加载了kafka数据的时间索引,重启kafka让其重新加载数据。
重启kafka后查看kafka日志,发现kafka已经开始自动删除15天前到1个月之间的数据,说明早期的数据时间戳有问题阻挡了kafka自动删除数据,早期错误的时间戳数据删除后,kafka就会自动删除后面过期的数据。

  • 1
    点赞
  • 3
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;">期末</span><span style="font-size:14px;background-color:#fbeeb8;">考点</span><span style="font-size:14px;">都对应</span><span style="font-size:14px;background-color:#fbeeb8;">详解视频</span><span style="font-size:14px;">,</span><span style="font-size:14px;"><span style="color:#e03e2d;">基础阶段</span></span><span style="font-size:14px;">内容全面,语言通俗易懂(翻译书中的语言为</span><span style="font-size:14px;background-color:#fbeeb8;">人话)</span><span style="font-size:14px;">,</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;">老师精心研究</span><span style="font-size:14px;background-color:#fbeeb8;">百份</span><span style="font-size:14px;">考卷,总结每一个考点,同时结合你肯定可以听懂的骚话,</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;background-color:#fbeeb8;">扫清你的数据库系统盲区</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;"><span style="color:#e03e2d;">真题阶段</span></span><span style="font-size:14px;">为你提供</span><span style="font-size:14px;background-color:#fbeeb8;">解题思路</span><span style="font-size:14px;">,培养你的</span><span style="font-size:14px;background-color:#fbeeb8;">解题思维</span><span style="font-size:14px;">,同时</span><span style="font-size:14px;background-color:#fbeeb8;">点明考点</span><span style="font-size:14px;">,结合文档进行重点解读,加深你的印象.</span> </h4> <h4 style="font-weight:500;font-size:1.5rem;font-family:'PingFang SC', 'Hiragino Sans GB', Arial, 'Microsoft YaHei', Verdana, Roboto, Noto, 'Helvetica Neue', sans-serif;color:#222226;background-color:#ffffff;text-align:center;"> <span style="font-size:14px;color:#3598db;">只为你的高分,我们交个朋友!让每位学生都可以学的起!!</span> </h4> <p> <span style="font-size:14px;color:#3598db;"><img src="https://img-bss.csdnimg.cn/202103040423318088.png" alt="" width="788" height="450" /></span> </p>
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值