是在消费者组级别还是在该消费者组内的单个消费者管理消费者抵销?

时间:2020-10-19 11:27:16

标签: apache-kafka kafka-consumer-api

我试图找出在消费群体层面上是否也存在抵消。消费者抵销是在消费者组级别还是在卡夫卡的该消费者组内的单个消费者?

1 个答案:

答案 0 :(得分:3)

偏移量在ConsumerGroup级别进行跟踪。

想象一下,在一个ConsumerGroup中有4个消费者线程,它从一个带有4个分区的主题中消费。如果现在停止所有4个线程,并仅在同一组中重新启动一个线程,则一个线程将知道所有4个线程在哪里停止消耗并从那里继续。


“您是说一个偏移量(基本上是一个共享的int / long值)将由一个消费者组中的所有消费者共享/更新吗?”

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

的串联
  • 消费者集团
  • 主题
  • 主题内的分区

,则您的值为偏移量。这个内部__consumer_offsets主题对所有消费者开放,因此信息可以共享。