Apache kafka 卡夫卡没有';不要删除主题中的旧邮件
在卡夫卡,我在Apache kafka 卡夫卡没有';不要删除主题中的旧邮件,apache-kafka,Apache Kafka,在卡夫卡,我在server.properties ############################# Log Retention Policy ############################# ... log.retention.hours=72 ... 主题的retention.ms设置为17280000(48小时) 但是,文件夹/tmp/kafka logs中仍然有旧数据,没有任何数据被删除。我在更改这些属性后等了几个小时 有什么需要设置的吗?所有主题都是当前制作和使用的
server.properties
############################# Log Retention Policy #############################
...
log.retention.hours=72
...
主题的retention.ms
设置为17280000
(48小时)
但是,文件夹/tmp/kafka logs中仍然有旧数据,没有任何数据被删除。我在更改这些属性后等了几个小时
有什么需要设置的吗?所有主题都是当前制作和使用的。如中所述:
日志保留基于日志文件的创建日期。尝试设置您的log.roll.hours
<24(因为[默认情况下][1]是24*7) 编辑:根据卡夫卡文档,cleanup.policy
应该默认为delete
retention.ms
或retention.bytes
指定删除数据的方式
关键是将
log.cleanup.policy
设置为compact
或delete
。我没有设置这个
运行:kafka主题--zookeeper 127.0.0.1:2181--topic topic1--description
显示在主题上设置的属性,例如配置:retention.ms=17280000,cleanup.policy=compact
必须设置清理策略
。此外,我还手动设置retention.ms
/retention.bytes
来控制清理触发器。Compact
策略将只压缩键中的值。也就是说,它最终将触发压缩过程,该过程将只为密钥留下一个(最终)值。但永远不要删除最后一个值
要按时间触发删除,您需要设置删除
策略。在这种情况下,删除过程将删除比给定数据旧的数据
但是,您可以将策略设置为“压缩、删除”
,以便在同一主题上利用这两个过程(早期版本中不可用)
但是,这些过程不是二次精确的:它们最终将在以下条件下触发,例如:
# The interval at which log segments are checked to see
# if they can be deleted according to the retention policies
log.retention.check.interval.ms=300000
(在上选中更多条件,然后将确保删除早于阈值的数据
此外,对于不同的时间粒度有不同的设置,并且它们具有优先级(如果设置了一个,它将忽略下一个)。确保没有意外的重写。请查看全面的文档以了解详细信息。我设置了此属性,但没有效果。我现在有超过7*24的日志,所以我想不是这样。我猜卡夫卡根本不会触发清除。我注意到主题
消费者偏移量
被删除,但我的主题没有。Did比较,这是由于未设置清理策略造成的,请参阅我的答案。但无论如何,谢谢!还要注意,日志段的大小也会影响此行为。log.retention.check.interval.ms
给出了“未知主题配置名称:log.retention.check.interval.ms”这是代理配置。也许你正在其他地方设置它?你可以在这里找到详细信息:好的,我的错,我在主题配置中搜索