【发布时间】: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 会为某个消费者设置这个偏移量,有什么合乎逻辑的解释吗?在我们的实际消费者中看不到任何表明他们明确这样做的东西。
我们目前有消费者在golang 和Node.js 中运行,所有人都面临这个问题,所以我们目前的假设是这个问题与我们的消费者无关,而是与我们的 Kafka 设置有关.
【问题讨论】:
-
+1 我们遇到了完全相同的问题,不幸的是我最终清除了整个 kafka 集群并重新安装。在生产中,从假期开始。这完全是关于 kubernetes 问题的卡夫卡,我仍然无法理解。我也尝试过清除主题或重置偏移量,这两种方法我都失败了。我们所有的消费者和生产者都是用 nodejs 编写的。
-
您能否检查您的数据是否因保留政策而被删除?
-
是的,这不是问题:)
标签: docker apache-kafka kubernetes kafka-consumer-api