每组发送给一个消费者的消息?

时间:2017-06-19 01:44:43

标签: apache-kafka

我有两个消费群体,即G1和G2。

  1. G1有两个成员M1,M2。
  2. G2再次有两个成员M3,M4
  3. G1民意调查Kafka主题,消息是否只传递给M1或M2中的一个成员,而不是两者?

    同样,当G2轮询一段时间后,它仍会在主题上找到消息。在这里,M3或M4也会收到消息吗?

    另外我相信组中的所有成员都应该在同一个节点上。对 ?客户代码或Kafka是否有责任选择组中的特定成员?

1 个答案:

答案 0 :(得分:1)

您的问题的答案取决于这些消费者群体正在消费的主题中有多少个分区。只有一个使用者组的成员可以从主题的每个分区中读取。

如果主题T1中只有一个分区,则M1和M3将从中读取,而M2和M4将不会收到任何消息。

如果T1中有两个分区(比如P1和P2),那么M1和M3将从T1P1和M2获得消息,而M4将从T1P2获得消息

消费者组的所有成员不必位于同一节点

其中一名经纪人被指定为该组的协调员,负责管理该组的成员及其分配任务。