【问题标题】:Can I have multiple consumer reading from same Kafka Topic in parallel?我可以让多个消费者同时阅读同一个 Kafka 主题吗?
【发布时间】:2017-09-15 03:29:04
【问题描述】:

目前我有一个 Kafka 主题。

现在我需要运行多个消费者,以便可以并行读取和处理消息。

这可能吗?

我正在使用 python 和 pykafka 库。

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

在两个消费者中接收相同的消息。我只需要处理一次消息。

【问题讨论】:

    标签: apache-kafka pykafka


    【解决方案1】:

    您需要使用BalancedConsumer 而不是SimpleConsumer

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

    您还应该确保您使用的主题的分区数至少与您实例化的消费者数量一样多。

    【讨论】:

      【解决方案2】:

      是的,如果您使用相同的消费者组 ID,并且主题的分区数应该大于消费者,那么您可以让多个消费者并行读取同一主题,否则一些消费者将不会被分配任何分区,而那些消费者不会获取任何数据

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-25
        • 2017-02-23
        • 2019-09-26
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 2022-01-06
        • 1970-01-01
        相关资源
        最近更新 更多