我有Apache Kafka集群,其保留策略删除,保留期限设置为24小时。 然后,我动态更改了保留期,并针对某些特定主题将其设置为1分钟。但是旧的消息仍然存在,所以我有几个问题:
答案 0 :(得分:2)
保留策略仅适用于封闭的细分受众群。如果您的细分仍然处于活动状态,则在关闭该细分并打开新细分之前,不会清除该细分中的数据。
答案 1 :(得分:2)
在每个代理上,分区被划分为段日志。默认情况下,一个段将存储1GB的数据(log.segment.bytes)的数据。此外,默认情况下每7天(log.roll.hours)推出一个新的日志段
每个代理安排一个更清洁的线程,该线程负责定期检查哪些段可以删除。默认情况下,清洁程序线程将每5分钟运行一次检查(可以通过代理配置进行配置:log.retention.check.interval.ms)
如果日志中的最新消息早于配置的保留期限,则段是可移动的。此外,活动段日志(代理当前正在写入的日志)无法删除
为了能够尽快删除段日志,您应该配置与保留期相关的日志滚动。例如,如果您将保留期限配置为24小时,那么将log.roll.hours配置为1小时可能是一个很好的ID。
请注意,随着清洁程序线程被一起调度,段删除实际上可能在每个代理上的不同时间发生。
使用kafka-configs
脚本检查特定主题的配置:
示例:
./bin/kafka-configs --describe --zookeeper localhost:2181 --entity-type topics --entity-name __consumer_offsets