java—如何在kafka 0.8.2中从压缩日志中清除旧段

cbjzeqam  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(349)

我知道,在新的Kafka版本中,我们有新的保留策略选项—压缩日志,删除具有相同密钥的旧版本邮件。但是过了很长一段时间,我们会得到太多的压缩日志段与旧消息。我们怎样才能自动清理这个压缩的原木?
乌德帕特:
我要澄清的是,我们需要紧凑的日志和方法来清理旧消息在这段时间。我在这里找到了关于同一问题的讨论http://grokbase.com/t/kafka/users/14bv6gaz0t/kafka-0-8-2-log-cleaner 但还没有找到我们可以手动发出汤姆斯通标记的消息,并没有任何想法。

lf3rwulv

lf3rwulv1#

这个问题已经很老了,但我想我会给出这个问题的最新情况。有一个特点(https://issues.apache.org/jira/browse/kafka-4015)已解决,计划在0.10.1.0版本中发布。

e3bfsja2

e3bfsja22#

降低kafka日志大小的唯一其他方法是通过日志保留配置设置。

log.retention.{ms,minutes,hours}
log.retention.bytes

另请注意,如果同时设置了log.retention.hours和log.retention.bytes,则当超过任一限制时,我们将删除一个段。
这两个命令在kafka中何时删除日志。log.retention.bytes默认为-1,我很确定将其保留为-1只允许time config单独确定日志何时被删除。
原木保留和压实是分开工作的。使用保留,即使启用了日志压缩,也可以在一定时间或大小后删除日志。因此,如果理论上有一个100mb的日志限制,并设置logyour.retention.bytes=104857600(100mb)。kafka会压缩你的日志,直到它达到100mb大小,然后删除必要的消息(最旧的先删除),直到日志小于100mb大小。
编辑:
事实证明,基于mechanikos提供的这个链接,原木保留和压缩是互斥的。虽然Kafka的设计让日志无限期地增长,却永远无法删除旧的日志消息,这看起来很奇怪。

相关问题