回答

2

不,delete.retention.mslog.cleaner.delete.retention.ms是在默认情况下关闭的log compaction中使用的属性。 log.rentention.hours是您可以控制消息何时被删除的属性。

从卡夫卡0.8.1文件Broker Configs

log.retention.hours

的时间来记录部分金额之前被删除,即默认数据保留窗口所有主题。请注意,如果同时设置了log.retention.minutes和log.retention.bytes,则在超出限制时删除段。

log.cleaner.delete.retention.ms

的时间保留删除墓碑标记日志压实话题量。此设置还会限制消费者在从偏移量0开始时必须完成读取的时间,以确保他们获得最终阶段的有效快照(否则在完成扫描之前可能会收集其墓碑)。

+0

在哪种情况下,我应该使用“log.cleaner.delete.retention.ms”。假设如果我在创建主题时将保留时间设置为6秒,那么消息会发生什么情况。请您帮助我解决这个问题。 – gaurav 2015-04-07 11:54:33

+0

'log.cleaner.delete.retention.ms'确定日志压缩发生的频率。如果将参数值设置为6秒,则日志压缩将每6秒发生一次。日志压缩涉及一些开销,所以我想它并不打算经常这样工作。 – Heejin 2015-04-07 16:42:25

+0

日志压缩:日志压缩可确保Kafka始终至少为单个主题分区的数据日志中的每个消息键保留最后已知的值。它解决用例和场景,例如在应用程序崩溃或系统故障后恢复状态,或者在运行维护期间重新启动应用程序后重新加载缓存。 (http://kafka.apache.org/081/documentation.html#compaction) – Heejin 2015-04-07 16:42:32