我有一个名为retention
的Kafka主题,以下是与保留相关的服务器配置:
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=3600000 (~ 1 hour)
log.cleaner.enable=true
以下是主题特定的配置:
retention.ms=2592000000,retention.bytes=3298534883328
retention.ms〜30d,retention.bytes =〜3.29 TB
我最近(在2019年1月14日)使用以下命令使用以下命令配置了retention.ms
和retention.bytes
:
./bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic retentions --config retention.bytes=219902325555
此处retntion.bytes
的配置似乎有效,而retention.ms
的配置似乎无效。这是我可以收集的证据:
cd log_dir/retentions-0/
ls -lrt 00000000000000000000.*
-rw-r--r-- 1 root root 294387381 Nov 26 22:37 00000000000000000000.log
-rw-r--r-- 1 root root 3912 Jan 14 18:06 00000000000000000000.index
-rw-r--r-- 1 root root 5868 Jan 14 18:06 00000000000000000000.timeindex
如果我们查看较旧细分的日志,则将近两个月了。
任何人都可以说这两种配置中的哪一种将对优先级生效。或者,两者都可以工作,只要超过配置的阈值即可。
在我的假设中,这两种配置应结合使用。请让我知道是否不是这种情况。
答案 0 :(得分:1)
两者一起工作。
摘自 Kafka:权威指南书
如果您同时为
log.retention.bytes
和log.retention.ms
指定了一个值,则在满足任何一个条件时,可能会删除消息。