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

Kafka关于消费者群体的问题

凌远
2023-03-14

我是Kafka的新手。我看了一眼Kafka文档。似乎分派给订阅消费者组的消息是通过将分区与消费者实例绑定来实现的。

在使用Apache Kafka时,我们应该记住一件重要的事情,即同一消费者组中的消费者数量应该小于或等于所使用主题中的分区数量。否则,将不会收到来自主题的任何消息。

在非prod环境中,我没有配置主题分区。在这种情况下,Kafka是否只有一个分区。如果我启动共享同一组的多个消费者并向他们订阅主题,消息是否总是发送到组中的同一实例?换句话说,我必须对主题进行分区,才能在消费者组中获得负载平衡功能?

谢谢

共有1个答案

巫马翰翮
2023-03-14

你完全正确。一个分区不能在paralell中处理(由一个消费组)。您可以将分区视为原子,它不能被拆分。

如果您使用每个主题相同数量的分区配置non-prod和prod env,这将有助于您在迁移到prod之前找到正确数量的conumser并捕获问题。

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

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

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

  • 我有一个用例,其中数据将从kafkaTopic1流入程序(我们称之为P1),经过处理,然后持久化到数据库。P1将在一个多节点集群上,因此每个节点将处理大量的kafka分区(假设本主题有5个节点和50个kafka分区)。如果其中一个节点由于任何原因完全失败,并且有数据正在处理,那么该数据将丢失。 例如,如果kafkaTopic1上有500条消息,node2拉出了10条消息(因此根据偏移量要拉出的下一

  • 我正处于探索Kafka0.8.1.1版本的初始阶段。 使用API进行触发器再平衡 将kafka配置为等待消费者活动一段时间,并假设它被不优雅地关闭,自动重新平衡。 这里的问题是,分配给死亡使用者的分区中的所有消息都保留在队列中,并且在重新平衡发生之前不会被处理。

  • null 编辑:好的,所以我取得了一些进步(如果我错了请纠正我): 每个消费者都将获得所有消息。 租约被分配了一个EventProcessorHost,所以它需要一个唯一的名称,所以这里的使用者组名称实际上并不相关。 仍然不能百分之百确定context.checkpointasync,但我相信它只适用于ConsumerGroup?