apache kafka documentation提及以下内容:
如果所有的消费者实例都有相同的消费者群体,那么 记录将有效地在消费者实例上进行负载平衡。
如果所有消费者实例都有不同的消费者群体,那么 每条记录将广播给所有消费者流程。
这让我在考虑分区时有点不清楚,第二个语句是否意味着如果我有多个消费者群体,这是否意味着每个群组中的每个消费者都会读取所有分区中的所有记录?!! < / p>
根据我的谦虚理解,他们在文档中使用的照片仍然不符合上述内容。
事实上,我正在阅读一篇很棒的文章kafka in a nutshell,下面引用的陈述与文档中提供的照片更加吻合。
也可以将消费者组织成针对特定主题的消费者群体 - 组内的每个消费者都从一个独特的分区读取 整个组消耗整个主题的所有消息。如果你 有多个消费者而不是分区,那么一些消费者将闲置 因为他们没有可读的分区。如果你有更多 分区比消费者,然后消费者将收到消息 多个分区。如果你有相同数量的消费者和 分区,每个消费者按顺序从一个消息中读取消息 分区。
我希望有人可以对上述内容有所了解,并根据Apache的官方文档清楚地解释一个场景。
答案 0 :(得分:1)
是否意味着每个组中的每个消费者都会读取所有分区中的所有记录?!!
没有。该声明假定每个组只有一个消费者(如“所有消费者实例具有不同的消费者群体”所示)。
所以你的整体理解是正确的。如果您有多个消费者群组,则会向每个群组发送一次消息。