【问题标题】:Kafka consumer group offset goes down to -1Kafka 消费者组偏移量下降到 -1
【发布时间】:2018-12-17 22:16:32
【问题描述】:

我们在 Kubernetes 中运行一个基于 gcr.io/google_containers/kubernetes-kafka:1.0-10.2.1 docker 镜像的 Kafka 集群,其中 zookeeper 后端使用 gcr.io/google_containers/kubernetes-zookeeper:1.0-3.4.10 以及 kafka 和 zookeeper 的三个实例。

我们有几个不同的消费者群体,他们消费和生产三个不同主题的数据。

行为: 有时,消费者组会将分区上某个主题的偏移量设置为 -1,然后从那时起停止对该主题的消费。如果我们重新启动我们的消费者,我们可能会看到他们将他们的偏移量设置为最新的偏移量,这可能意味着消费者在它变为 -1 和重新启动之间的时间内错过了消息。

我无法找到消费者组为什么会将其偏移量设置为 -1 以及为什么它会在正常运行数天后“随机”这样做。为什么 Kafka 会为某个消费者设置这个偏移量,有什么合乎逻辑的解释吗?在我们的实际消费者中看不到任何表明他们明确这样做的东西。

我们目前有消费者在golangNode.js 中运行,所有人都面临这个问题,所以我们目前的假设是这个问题与我们的消费者无关,而是与我们的 Kafka 设置有关.

【问题讨论】:

  • +1 我们遇到了完全相同的问题,不幸的是我最终清除了整个 kafka 集群并重新安装。在生产中,从假期开始。这完全是关于 kubernetes 问题的卡夫卡,我仍然无法理解。我也尝试过清除主题或重置偏移量,这两种方法我都失败了。我们所有的消费者和生产者都是用 nodejs 编写的。
  • 您能否检查您的数据是否因保留政策而被删除?
  • 是的,这不是问题:)

标签: docker apache-kafka kubernetes kafka-consumer-api


【解决方案1】:

默认的偏移量保留策略offsets.retention.minutes 曾经是 1 天,在较旧的 Kafka 版本中,即使对于活跃的消费者,偏移量也会消失。用KIP-211修复

我们最初在 Kafka 0.10.2.1 中发现了这一点,一些选定的主题丢失了消费者组偏移量(即变为 -1),因为几天没有消息到达该主题并且偏移量保留政策开始生效消除了活跃消费者的抵消。

我们能够通过将保留设置增加到 7 天来解决这个问题,这似乎也是 Kafka 最终所做的,请参阅 KIP-186

【讨论】:

    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2020-06-11
    • 2018-02-03
    相关资源
    最近更新 更多