我如何手动分配分区,同时仍然能够自动提交



我正在尝试手动为消费者组中的每个消费者分配分区。但是,当您在组中添加消费者时,Kafka(或至少,Kafka-Python)假设您希望小组协调员完成所有任务。是否有一种方法可以保持使用消费者组(特别是自动加入)同时手动管理分配分区的所有好处?我可以编写自定义分区任务吗?

我正在使用kafka-python 1.3.3库。

是的,kafka消费者拥有属性" partition.assignment.strategy",您可以在其中指定自己的自定义分配器,默认为rangeassignor

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

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

您可以使用assign方法手动为消费者分配分区。例如:

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

最新更新