目前我有一个 Kafka 主题。
现在我需要运行多个消费者,以便可以并行读取和处理消息。
这可能吗。
我正在使用 python 和 pykafka 库。
consumer = topic.get_simple_consumer(consumer_group=b"charlie",
auto_commit_enable=True)
在两个消费者中都接受相同的消息。我只需要处理一次消息。
目前我有一个 Kafka 主题。
现在我需要运行多个消费者,以便可以并行读取和处理消息。
这可能吗。
我正在使用 python 和 pykafka 库。
consumer = topic.get_simple_consumer(consumer_group=b"charlie",
auto_commit_enable=True)
在两个消费者中都接受相同的消息。我只需要处理一次消息。
您需要使用BalancedConsumer
而不是SimpleConsumer
:
consumer = topic.get_balanced_consumer(consumer_group=b"charlie",
auto_commit_enable=True)
您还应该确保您正在使用的主题至少具有与您正在实例化的消费者数量一样多的分区。
是的,如果您使用相同的消费者组 ID,并且主题的分区数应大于消费者,则您可以让多个消费者并行读取同一主题,否则某些消费者将不会被分配任何分区,而这些消费者将不会t 获取任何数据