问题描述
我正在阅读《Kafka:权威指南》第一版一书,以了解代理何时删除日志段。
根据我所理解的文本,一个段在关闭之前不会被删除。只有当段达到 log.segment.bytes 大小时才能关闭段(考虑到 log.segment.ms 未设置)。一旦一个段符合删除条件,log.retention.ms 策略将适用于最终决定何时删除该段。
然而,这似乎与我在我们的生产集群(Kafka ver 2.5)中看到的行为相矛盾。
只要满足 log.retention.ms,日志段就会被删除,即使段大小小于 log.segment.bytes。
[2020-12-24 15:51:17,808] INFO [日志分区=Topic-2, dir=/Folder/Kafka_data/kafka] 找到可删除的段 偏移 [165828] 由于保留时间 604800000 毫秒违规 (kafka.log.Log)
[2020-12-24 15:51:17,808] INFO [日志分区=Topic-2, dir=/Folder/Kafka_data/kafka] 调度要删除的段 列表(LogSegment(baseOffset=165828,size=895454171,lastModifiedTime=1608220234000,最大时间=1608220234478)) (kafka.log.Log)
大小仍然小于 1GB,但该段已被删除。
这本书在发布新闻时提到 Kafka 版本是 0.9.0.1 。在后来的 Kafka 版本中,这个设置也发生了变化。 (我在 Kafka 文档中找不到任何关于此更改的具体提及)。以下是书中的摘录。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)