Consumer Offset 是在 Consumer group level 还是在该 consumer group 内的单个 consumer 管理的?

Is Consumer Offset managed at Consumer group level or at the individual consumer inside that consumer group?

我想知道在消费者组级别是否也有任何抵消。 Consumer Offset是在Consumer group级别还是在Kafka中该consumer group内的单个consumer?

在 ConsumerGroup 级别跟踪偏移量。

假设您在一个 ConsumerGroup 中有 4 个消费者线程从一个具有 4 个分区的主题消费。如果您现在停止所有 4 个线程并仅重新启动同一组中的一个线程,该线程将知道所有 4 个线程在哪里停止使用并从那里继续。


"you are saying one offset (basically a shared int/long value) will be shared/updated by all the consumers in a consumer group?"

是的,这是正确的。请记住,主题的单个分区只能由组中的一个消费者线程读取。同一个 ConsumerGroup 的两个消费者线程永远不会同时消费一个主题分区。消费者组的偏移量存储在名为 __consumer_offsets 的内部 Kafka 主题中。在本主题中,您基本上有一个 key/value 对,其中您的密钥基本上是

的串联
  • 消费者组
  • 话题
  • 主题内的分区

你的值是偏移量。此内部 __consumer_offsets 主题可供所有消费者使用,因此可以共享信息。