我们在gcr.io/google_containers/kubernetes-kafka:1.0-10.2.1
docker镜像的Kubernetes中运行一个Kafka集群,并使用gcr.io/google_containers/kubernetes-zookeeper:1.0-3.4.10
和Zookeeper后端以及三个kafka和zookeeper实例一起运行Zookeeper后端。
我们有一些不同的消费群体,它们既消费和产生有关三个不同主题的数据。
行为:有时,消费者组会将其在某个分区上某个主题的偏移量设置为-1,然后从此停止一起消费该主题。如果重新启动使用者,我们可能会看到他们将偏移量设置为最新的偏移量,这可能意味着使用者在从-1到重新启动之间的时间内错过了消息。
我遇到了一个问题,那就是为什么一个消费群体为什么要将偏移量设置为-1,以及为什么在几天的正常运行时间后会“随机”设置偏移量。对于Kafka为什么会为特定消费者设置此偏移量,是否有任何逻辑上的解释?在我们的实际消费者中看不到任何表明他们明确在这样做的东西。
我们目前在golang
和Node.js
中都运行着消费者,所有这些消费者都面临着这个问题,因此我们目前的假设是此问题与我们的消费者无关,而是使用我们的Kafka设置。