apache-kafka - 同组的kafka消费者如何在他们之间共享消息?
问题描述
比如说,有一个消费者组。(具有相同组 ID 的消费者)。
消费者组正在消费来自代理的主题 A。
主题 A 有 4 个分区,该组中有 4 个消费者。
每个消费者消费不同的分区。(消费者 1 在分区 1 中接收消息,消费者 2 在分区 2 中接收消息,依此类推,因为这就是消费者组在 kafka 中所做的。在消费者组中,每个人都有 1/4 的主题。
我的问题:他们如何分享信息以便他们都有主题 A?
他们如何结合这些点点滴滴?这发生在哪里?
如果我的电脑(A组的消费者1)从Broker消费了Topic A,而我朋友的电脑(A组的消费者2)消费了同一个Topic的其他部分,我们如何组合Topic A中的消息?
解决方案
我想到了“消费者”一词,即使用代理的主题的计算机或服务器。这就是为什么我对消费者组感到困惑。
消费者是客户端或程序,我的计算机或服务器上可以有许多消费者。Consumer Group 是指一台独立机器上的多个消费者进程
所以我不需要担心组中的消费者会分享一些消息来完成一个主题。以前,我认为每个消费者都是服务器或计算资源,因此他们必须以某种方式进行通信。但这就是我感到困惑的原因。他们不需要通过网络相互通信,也不需要一个池来共享他们使用的分区。
Consumer 1可以从partition 1读取,Consumer 2可以从partition 2读取,如果Consumer 1、2共享同一个group ID(Consumer group),Consumer 1不需要从partition 2读取,Consumer 2不需要需要从第 1 部分读取。他们已经有一个他们需要的主题。繁荣!
我发布了一个答案来帮助像我一样思考的人。
推荐阅读
- javascript - 如何使 RTCPeerConnection 在 Kotlin/JS 中可用而不自己声明类?
- javascript - 如何通过单击按钮显示隐藏的文本?
- c# - EF中的异步实现JoinAwait
- ruby-on-rails - 如何在 rails 6 或 rails 7 alpha 引擎中使用 jqueryUI
- c++ - 使用 GDB 将字符串传递给函数
- c++ - 我们如何知道一个指针是用 new 还是 new[] 分配的?
- sql - 了解 SQL Server 执行计划
- html - CSS 悬停属性不适用于嵌套 div
- javascript - 如何测试从 REST api 获取它的 src 属性的反应图像组件
- amazon-web-services - AWS lambda 部署问题 - 权限不足