我能让多个消费者同时阅读同一Kafka主题吗?

5f0d552i  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(542)

目前我有一个Kafka主题。
现在我需要运行多个consumer,以便可以并行地读取和处理消息。
这可能吗。
我正在使用python和pykafka库。

consumer = topic.get_simple_consumer(consumer_group=b"charlie",
                                 auto_commit_enable=True)

在两个消费者身上都传达了同样的信息。我只需要处理一次消息。

qyyhg6bp

qyyhg6bp1#

你需要使用 BalancedConsumer 而不是 SimpleConsumer :

consumer = topic.get_balanced_consumer(consumer_group=b"charlie",
                                       auto_commit_enable=True)

您还应该确保您正在使用的主题的分区数至少与您正在示例化的使用者数相同。

rkttyhzu

rkttyhzu2#

是的,您可以让多个使用者并行读取同一主题,前提是您使用相同的使用者组id,并且主题的分区数应大于使用者,否则某些使用者将不会被分配任何分区,并且这些使用者将不会获取任何数据

相关问题