跨集群的Apache Kafka消费者组示例

时间:2018-11-26 13:04:43

标签: apache-kafka kafka-consumer-api

我是Kafka的新手,已经在3台服务器上实现了KAFKA集群,并且在3台服务器中,我正在运行Consumers,每个Server都有3个使用者,即3x3 = 9 Consumers。

我的问题是:-  1.当我在同一主题的整个群集中提供相同的组ID时,我没有收到任何重复的消息,但是当我在同一主题的整个群集中给3个不同的使用者组ID时,我收到的重复消息恰好是3?

请帮助使用消费者组?

2 个答案:

答案 0 :(得分:0)

我认为以下类推可能有助于理解这一概念。考虑新员工加入您的公司。因此,您有一个employees主题。 现在,该员工必须访问IT部门以获取所有设备(计算机等),它必须与安全部门会面以获取其员工标签并进行简报,他必须与HR的人员会面以了解正确的行为并公司政策等。

现在,IT部门有5名工人(5名消费者),HR有4名工人(4名消费者),安全人员是一个人的表演(单名消费者)。 因此,您有3个消费群体,每个消费群体都必须处理所有新员工,因此每个员工要处理3次。

现在引入分区概念-您将员工排成一行(分区)。每个分区由每个使用者组的一个使用者处理(这是kafka的限制)。假设您有20行员工。每个IT人员要处理4条线,每个HR人员要处理5条线,而安全性差的人要处理全部20条线。

希望可以澄清一下...

答案 1 :(得分:0)

拥有GroupId的全部原因是为了使该组中的使用者可以一起工作,即不使用相同的消息。

拥有消费群体意味着您可以将消费工作划分为多个消费=性能提升。

没有组标识,使用者就成为完全独立的使用者,因此他们每个人都阅读所有消息。