首页 > 解决方案 > Kafka 中每组推荐的消费者数量是多少?

问题描述

Kafka 中每组推荐的消费者数量是多少?基本上,我有 400 个主题,我想从我的小组中消费。我在实验中注意到,如果我 1 个消费者对消费者所有 400 个主题,它就可以工作。但是,如果我为单个消费者组中的每个主题创建 1 个消费者,我将无法接收任何消息。

编辑:我发现一些消费者能够在轮询循环期间接收消息,但不是全部。我的猜测是,由于缺少心跳,他们正被从消费者组中删除。

从日志看来,几分钟后,一些消费者无法发送任何心跳,因为该组总是在重新平衡:

[2019-03-08 07:42:36,769] INFO [Consumer clientId=jira_con-chow-test-69, groupId=chow] Attempt to heartbeat failed since group is rebalancing (org.apache.kafka.clients.consumer.internals.AbstractCoordinator)
[2019-03-08 07:42:39,671] DEBUG [Consumer clientId=jira_con-chow-test-69, groupId=chow] Sending Heartbeat request to coordinator mwkafka-prod-02.tbd:9092 (id: 2147483641 rack: null) (org.apache.kafka.clients.consumer.internals.AbstractCoordinator)
....

我实际上想知道应该加入一个组的合适的消费者数量是多少。或者我是否错误地解释了这个问题,我应该看看别的东西。

谢谢,阿比

标签: apache-kafkakafka-consumer-api

解决方案


理想的等式是: 分区数=消费者组中的消费者数。

考虑,一个有 50 个分区的主题 t 有一个由 10 个消费者组成的消费者组,那么它将(起初)开始只消费 10 个分区。在达到分区中的最后一个偏移量后,消费者开始消费主题 t 的其他分区。

有关更多详细信息,卡夫卡消费者

另一个有用的帖子

谢谢


推荐阅读