【问题标题】:Kafka data got compacted/deleted not respecting the configurationKafka 数据在不考虑配置的情况下被压缩/删除
【发布时间】:2021-12-31 03:06:06
【问题描述】:

我们正在使用 Strimzi 在 Kubernetes 中管理我们的 Kafka 集群。

下面是我们的 Kafka 集群的 Strimzi 配置(删除了下面的 SSL 和授权配置):

[kafka@k8s-kafka-2 kafka]$ cat /tmp/strimzi.properties
##########
# User provided configuration
##########
log.message.format.version=2.6
log.retention.hours=-1
offsets.retention.minutes=525600
offsets.topic.replication.factor=3

我们使用无限日志保留来永不从我们的 Kafka 主题中删除数据。 我们还有一个默认的清理策略(删除而不是压缩)

今天,我们的主题最旧偏移量从 0 变为高数字。因此,我们丢失了很多早期的消息。

我们正试图弄清楚为什么在我们使用无限保留 (log.retention.hours=-1) 时会发生这种情况。

感谢任何帮助。如果添加哪些详细信息可以帮助我,请告诉我。

当保留无限时,为什么 Kafka 可以压缩主题或将其偏移量从 0 移动到更高的数字?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    在 kafka 文档中,未报告 log.retention.* 代理参数的有效值。对 -1 值的唯一引用是 log.retention.ms。我建议使用 log.retention.ms=-1 而不是 log.retention.hours=-1。

    【讨论】:

    • 感谢撒克逊人。我会尝试查看 Kafka 的代码,看看 log.retention.hours 是否生效。
    • 基本上我想知道究竟是什么原因造成的,这样我们就可以防止它再次发生。
    • 这是删除段代码。 github.com/apache/kafka/blob/…
    • 请检查此代码 -1 是否也适用于小时和分钟保留 github.com/apache/kafka/blob/2.6/core/src/main/scala/kafka/…。测试用例证明github.com/apache/kafka/commit/…
    • 我不知道 scala,但如果 kafka 版本是 2.6,则保留功能似乎也适用于 log.retention.hours。您是否检查过某些主题保留参数是否覆盖了代理的保留参数?可能这是你做的第一件事。
    猜你喜欢
    • 2011-02-08
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2018-09-29
    • 2011-10-09
    • 1970-01-01
    相关资源
    最近更新 更多