【问题标题】:How long are compacted logs kept in Kafka?压缩日志在 Kafka 中保存多长时间?
【发布时间】:2018-06-01 16:55:22
【问题描述】:

我是 Apache Kafka 的新手。我一直在阅读有关压缩清理政策的信息。我对此特别感兴趣,因为我想在用于同步不同数据存储以实现最终一致性的主题上使用此策略。

我看到有一个delete.retention.ms 选项可供我使用。但这仅适用于“删除”墓碑/有效负载。我了解此选项会限制我在无法查看来自 offset=0 的记录后让消费者重新运行的时间。但是,我从不硬删除系统中的任何内容。换句话说,我永远不会有“删除”墓碑/有效负载。

由于我永远不会删除墓碑,我想知道 Kafka 会将压缩日志保留多长时间?

注意:我确实遇到了this 问题,这导致我进入this 问题。这不能回答我需要知道的内容,或者这不是我可以用来限制压缩日志的生存时间的东西。如果我错了,请纠正我。

【问题讨论】:

    标签: java apache-kafka


    【解决方案1】:

    如果您使用日志压缩(而不是日志保留),Kafka 将永远保留每个键的最新条目(直到您使用显式墓碑消息 <key:null> 删除整个键)。

    【讨论】:

    • 作为后续问题,有哪些好的方法可以管理数据的大小?
    • 主题的大小取决于(使用日志压缩)取决于两个因素:(1)不同键的数量(这基本上是日志大小的下限)和(2)热切程度结合您的输入/更新写入触发日志清理。可以配置日志清理间隔。
    【解决方案2】:

    根据KIP-71,现在您可以应用该策略了:

    "compact,delete" 
    

    这两个都适用,每个都有自己的阈值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多