如何在能够自动提交的同时手动分配分区?

时间:2017-09-20 00:18:38

标签: apache-kafka kafka-consumer-api kafka-python

我正在尝试为消费者群组中的每个消费者手动分配分区。看起来,当您在组中添加使用者时,Kafka(或者至少是kafka-python)假定您希望组协调员执行所有分配。有没有办法在能够手动管理分配分区的同时保持使用消费者组(特别是自动提交)的所有好处?我可以编写自定义分区分配器吗?

我使用的是kafka-python 1.3.3库。

2 个答案:

答案 0 :(得分:1)

是的,Kafka使用者有一个属性“partition.assignment.strategy”,您可以在其中指定自己的自定义Assignor,默认为RangeAssignor

自动提交也是属性驱动的“enable.auto.commit”

卡夫卡消费者配置: https://kafka.apache.org/documentation/#consumerconfigs

答案 1 :(得分:0)

您可以使用assign方法将分区手动分配给使用者。 例如:

partition = TopicPartition('myTopic', 0)
self.consumer = KafkaConsumer(...)
self.consumer.assign([partition])