kafka设置定时清理日志却失效?搞清背后原理

今天偶然看了一眼kafka可视化工具发现,设置了kafka日志定时清理却没有生效

在这里插入图片描述

从图中可以很明显的看到最早的数据是9月24号三点半的,我设置的过期时间为36个小时,而当前时间为9月26号的十点半,正常来讲应该早就被删除了。

然而却一直还在topic中,事实上kafka的日志清理并不是哪个topic中数据过期了就立马清除了,而是根据设置的分片大小将接收的数据进行分片,旧的数据达到指定分片大小便分了出去然后kafka定期将这个分片删除。
在这里插入图片描述
可以看到最早的分片数据的更新时间为25号的11点半,还没有达到36个小时,所以并没有删除。出现这种情况主要是因为在topic中旧的数据在还没有过期的时候又有新的数据进来并且因为数据量的缘故没有达到指定分片大小。

在这个过程中有几个重要的控制参数,分片大小(segment.bytes)、分片时间(segment.ms)、清理时间(retention.ms),至于更详细的网上资料很多,这里就不再赘述了。

总结,看到kafka的topic中还有超出清理时间范围的数据,大概率是旧数据所在的文件的更新时间并没有超出清理时间,最后有啥问题欢迎在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值