当前位置: 首页 > 知识库问答 >
问题:

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

余靖
2023-03-14

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

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

请帮忙如何利用消费群体?

共有2个答案

施永贞
2023-03-14

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

拥有使用者组意味着您可以在多个使用者之间分配消耗工作 = 性能提升。

如果没有组id,消费者将充当完全独立的消费者,因此他们每个人都会阅读所有消息。

呼延钱明
2023-03-14

我认为下面的类比可能有助于理解这个概念。假设一名新员工要加入你的公司。所以你有一个员工主题。现在,这个员工必须去信息技术部门拿所有的设备(计算机等),必须去安全部门拿他的员工标签并接受简报,他必须去人力资源部见个人,了解正确的行为和公司政策等。

现在IT部门有5名员工(5名消费者),人力资源部有4名员工(4名消费者)和安全人员是一个人的节目(单一消费者)。所以你有3个消费者群体,每个消费者群体都必须处理所有新员工,所以每个员工都要处理3次。

现在介绍分区概念——将员工放入行(分区)中。每个分区由每个消费者组的单个消费者处理(这是kafka限制)。假设你有20行员工。每个IT人员处理4条线路,每个HR人员处理5条线路,而糟糕的安全人员处理所有20条线路。

希望它能澄清一点。。。

 类似资料:
  • 我在站点1(3个代理)有两个集群设置cluster-1,在站点2(3个代理)有两个集群设置cluster-2。使用spring kafka(1.3.6)消费者(一台机器)并通过@KafkaListener注释收听消息。我们如何为每个集群(c1和c2)实例化多个KafkaListenerContainerFactory,并同时监听来自这两个集群的数据。 我的侦听器应该同时使用来自这两个集群的消息。

  • 消费者群组是来自Kafka主题的多线程或多机器消费。 消费者群组 消费者可以通过使用加入一个组。 一个组的最大并行度是该组中的消费者的数量 ← 分区的数量。 Kafka将一个主题的分区分配给组中的使用者,以便每个分区仅由组中的一位消费者使用。 Kafka保证只有群组中的单个消费者阅读消息。 消费者可以按照存储在日志中的顺序查看消息。 重新平衡消费者 添加更多流程/线程将导致Kafka重新平衡。 如

  • 我在使用Kafka时遇到了一些问题。非常感谢任何帮助!我在docker swell中分别有zookeeper和kafka集群3个节点。您可以在下面看到Kafka代理配置。 我的情况: < li > 20x位制片人不断向Kafka主题传达信息 < li>1x消费者读取和记录消息 < li >终止kafka节点(docker容器停止),因此现在群集有2个Kafka代理节点(第3个节点将自动启动并加入群

  • 我正在阅读Kafka常见问题解答,他们如下所示。 •每个分区不会被每个使用者组中的多个使用者线程/进程使用。这允许每个进程以单线程方式使用,以保证分区内的使用者的顺序(如果我们将有序消息分割成一个分区并将它们传递给多个使用者,即使这些消息是按顺序存储的,它们有时也会被无序地处理)。 有没有可能,

  • 我是Kafka的新手,我对消费者的理解是,基本上有两种类型的实现 1)高级消费者/消费者群体 2)简单消费者 高级抽象最重要的部分是当Kafka不关心处理偏移量,而Simple消费者对偏移量管理提供了更好的控制时使用它。让我困惑的是,如果我想在多线程环境中运行consumer,并且还想控制偏移量,该怎么办。如果我使用消费者组,这是否意味着我必须读取存储在zookeeper中的最后一个偏移量?这是我

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?