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

Kafka如何向众多消费群体广播

房子昂
2023-03-14

我是Kafka的新手,我将非常感谢关于下一个案件的澄清。

Kafka文档在“消费者立场”一段中说:

问题是,如果只有一个消费者能够拉出特定的信息,那么如何向多个消费者群体广播呢?

共有1个答案

姬奇思
2023-03-14

如果一个主题有10个分区和3个使用者实例(C1、C2、C3)都属于同一个使用者组,我们可以有不同的使用者模型,允许读取并行,如下所示

每个使用者使用单个流。在这个模型中,当C1启动时,主题的所有10个分区都映射到同一个流,并且C1开始从该流消费。当C2启动时,Kafka重新平衡两个流之间的分区。因此,每个流将被分配给5个分区(取决于重新平衡html" target="_blank">算法,也可能是4对6),每个使用者从其流中消费。类似地,当C3启动时,分区再次在3个流之间重新平衡。注意,在此模型中,当从分配给多个分区的流中消费时,消息的顺序将在分区之间混杂。

每个消费者使用多个流(例如C1使用3,C2使用3,C3使用4)。在这个模型中,当C1启动时,所有的10个分区都被分配给3个流,并且C1可以使用多个线程同时使用3个流。当C2开始时,分区在6个流之间重新平衡,类似地,当C3开始时,分区在10个流之间重新平衡。每个使用者可以同时从多个流中使用。注意,这里的流数和分区数是相等的。如果流的数量超过了分区,一些流将不会获得任何消息,因为它们不会被分配任何分区。

如果存在另一个消费者组,则对该消费者组内的消费者应用相同的处理

 类似资料:
  • 我是Kafka的新手,正在学习Kafka内部知识。请根据需要随时更正我的理解。。 这是我的实时场景..感谢所有的回复: 我有一个接收数据文件的实时FTP服务器…比如索赔文件。 我将把这些数据发布到一个主题中.让我们把这个主题称为claims_topic(2个分区). 我需要订阅这个claims_topic,阅读消息并将它们写入Oracle和Postgres表。让我们将oracle表称为Otable

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

  • 我们希望获得Kafka消费群体指标(例如,节流和字节率)。 我们已经使用以下工具完成了此操作: Kafka消费者Java应用程序的JMX Mbean CLI实用程序: bin/kafka-consumer-groups.sh--描述--组group_name--bootstrap-serverlocalhost: port . 问题:这可以通过使用一些Java库以编程方式完成吗? 到目前为止,我们

  • 嗨,我正在使用KafkaCLI,以清楚地了解Kafka的工作原理。我对消费者群体感到困惑。我用三个分区创建了主题。我将创建producer,为主题提供一些数据。第一次我添加了一些数据,如下所示。 现在我的理解是user1、user2、user3会随机到三个不同的分区。 创建消费群时,如下所示。 这将给我所有的user1、user2、user3。 现在,在一个消费者组中,我可以有许多消费者。如果消费

  • 我们在Kubernetes中基于<code>gcr.io/google_containers/Kubernetes-Kafka:1.0-10.2.1</code>docker映像运行一个Kafka集群,使用<code>gcr.io/google_containers/Kubernetes-zookeeper:1.0-3.4.10</code>,使用三个Kafka和zookeer实例。 我们有几个不

  • 关于斯普林斯-Kafka在某些场景中的行为,我有几个问题。任何答案或指针都将是伟大的。 背景:我正在构建一个与外部API对话并返回确认的kafka消费者。我的配置如下所示: 让我们来讨论一个场景,其中调用了消费者的kafkalistener,它调用但是服务关闭,然后根据,它重试3次然后失败,然后调用errorhandler,从而停止KafkalistenerEndpointRegistry。这将关