我正在尝试手动将分区分配给使用者组中的每个使用者。但是,当您在组中添加使用者时,kafka(或者至少kafkapython)假设您希望组协调器执行所有分配。在能够手动管理分配分区的同时,有没有一种方法可以保留使用使用者组(特别是autocommit)的所有好处?我可以写一个自定义分区赋值器吗?我使用的是kafkapython1.3.3库。
0kjbasz61#
是的,kafka使用者有一个属性“partition.assignment.strategy”,您可以在其中指定自己的自定义赋值器,默认值是rangeassignor自动提交也是属性驱动的“enable.auto.commit”Kafka消费者配置:https://kafka.apache.org/documentation/#consumerconfigs
pw9qyyiw2#
你可以用 assign 方法将分区手动分配给使用者。例如:
assign
partition = TopicPartition('myTopic', 0) self.consumer = KafkaConsumer(...) self.consumer.assign([partition])
2条答案
按热度按时间0kjbasz61#
是的,kafka使用者有一个属性“partition.assignment.strategy”,您可以在其中指定自己的自定义赋值器,默认值是rangeassignor
自动提交也是属性驱动的“enable.auto.commit”
Kafka消费者配置:https://kafka.apache.org/documentation/#consumerconfigs
pw9qyyiw2#
你可以用
assign
方法将分区手动分配给使用者。例如: