首页 > 解决方案 > 同组的kafka消费者如何在他们之间共享消息?

问题描述

比如说,有一个消费者组。(具有相同组 ID 的消费者)。

消费者组正在消费来自代理的主题 A。

主题 A 有 4 个分区,该组中有 4 个消费者。

每个消费者消费不同的分区。(消费者 1 在分区 1 中接收消息,消费者 2 在分区 2 中接收消息,依此类推,因为这就是消费者组在 kafka 中所做的。在消费者组中,每个人都有 1/4 的主题。

我的问题:他们如何分享信息以便他们都有主题 A?

他们如何结合这些点点滴滴?这发生在哪里?

如果我的电脑(A组的消费者1)从Broker消费了Topic A,而我朋友的电脑(A组的消费者2)消费了同一个Topic的其他部分,我们如何组合Topic A中的消息?

标签: apache-kafkakafka-consumer-apiproducer-consumer

解决方案


我想到了“消费者”一词,即使用代理的主题的计算机或服务器。这就是为什么我对消费者组感到困惑。

消费者是客户端或程序,我的计算机或服务器上可以有许多消费者。Consumer Group 是指一台独立机器上的多个消费者进程

所以我不需要担心组中的消费者会分享一些消息来完成一个主题。以前,我认为每个消费者都是服务器或计算资源,因此他们必须以某种方式进行通信。但这就是我感到困惑的原因。他们不需要通过网络相互通信,也不需要一个池来共享他们使用的分区。

Consumer 1可以从partition 1读取,Consumer 2可以从partition 2读取,如果Consumer 1、2共享同一个group ID(Consumer group),Consumer 1不需要从partition 2读取,Consumer 2不需要需要从第 1 部分读取。他们已经有一个他们需要的主题。繁荣!

我发布了一个答案来帮助像我一样思考的人。


推荐阅读