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