Apache kafka 卡夫卡多重消费群体
我有多个消费者群体,每个群体有一个消费者 比如,主题T1和分区P1以及2个消费群体CG1和CG2 CG1有1个消费者-CG1#C1,相应地CG2有CG2#C1 现在,我们在多个消费者群体中收到了相同的信息,这是根据设计预期的 我的问题是卡夫卡如何在多个消费群体之间保持这种抵消。 如果一个消费者组停机几分钟,并且它已备份,那么它将如何从上次提交的读取中获取消息。Apache kafka 卡夫卡多重消费群体,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,我有多个消费者群体,每个群体有一个消费者 比如,主题T1和分区P1以及2个消费群体CG1和CG2 CG1有1个消费者-CG1#C1,相应地CG2有CG2#C1 现在,我们在多个消费者群体中收到了相同的信息,这是根据设计预期的 我的问题是卡夫卡如何在多个消费群体之间保持这种抵消。 如果一个消费者组停机几分钟,并且它已备份,那么它将如何从上次提交的读取中获取消息。 CG1位于偏移量24处,CG2'在向下移动之前一直到偏移量10处。因此,当CG2启动时,它将如何从偏移量11开始,而CG1不会受到影响。
CG1位于偏移量24处,CG2'在向下移动之前一直到偏移量10处。因此,当CG2启动时,它将如何从偏移量11开始,而CG1不会受到影响。默认情况下,偏移量存储在一个名为
\uu consumer\u offset
的特殊主题中。这是一个示例,其中偏移量存储为消息,其中包含主题、分区和消费者组作为密钥的密钥。由于这一点,不同消费群体的补偿是独立的。希望这能回答你的问题。有关如何处理此问题的详细信息,请查看此处:消费者群体是独立的实体。如果不同消费群体中的消费者订阅相同的卡夫卡主题,则补偿管理之间不会有任何冲突。每个消费者组将在\uuu consumer\u offset
主题中维护自己的偏移量(这是管理消费者偏移量的压缩内部主题)
Kafka提供了一个选项,可以将给定消费者组的所有补偿存储在一个名为补偿管理器的指定代理(该组的)中。每当使用者从分区读取消息时,它都会向偏移管理器发送偏移提交请求。一旦接受提交请求,使用者就可以读取下一个偏移量
如果偏移提交失败,使用者将重试提交。每个分区维护每个偏移提交
具体说明如下: