Kafka多重消费群体

wgmfuz8q  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(454)

我有多个消费者群体,每个群体有一个消费者。
假设,主题t1和分区p1以及2消费者组cg1和cg2 cg1有1个消费者-cg1#c1,相应地cg2有cg2#c1
现在,我们在多个消费者群体中收到了相同的消息,这是按照设计预期的。
我的问题是,Kafka如何在多个消费群体之间保持这种抵消。如果有一个消费组宕机几分钟,并再次对其进行备份,那么它将如何从上次提交的读取中获取消息。cg1在偏移量24处,cg2'在下降到偏移量10之前。所以当cg2上升时,它将如何从偏移量11开始,而cg1不受影响。

t30tvxxf

t30tvxxf1#

消费者群体是独立的实体。如果消费者在不同的消费群体中,订阅同一Kafka主题,就不会有任何冲销管理的冲突。每个消费群体都将在 __consumer_offsets 主题(这是管理消费者补偿的内部主题)
kafka提供了一个选项,可以将给定用户组的所有偏移存储在一个名为偏移管理器的指定代理(针对该组)中。每当使用者从分区读取消息时,它都会向偏移管理器发送偏移提交请求。一旦接受提交请求,使用者就可以读取下一个偏移量。
如果偏移提交失败,使用者将重试提交。每个分区都维护每个偏移提交。
具体解释如下:http://kafka.apache.org/documentation/#impl_offsettracking

6pp0gazn

6pp0gazn2#

默认情况下,偏移量存储在名为 __consumer_offsets . 这是一个压缩主题,其中偏移量存储为消息,并带有一个键,其中包含主题、分区和使用者组作为键。由于这一点,不同消费群体的补偿是独立的。希望这能回答你的问题。有关如何准确处理此问题的更多信息,请查看以下内容:http://kafka.apache.org/documentation/#impl_offsettracking

相关问题