如何在仍然能够自动提交的情况下手动分配分区?

jgwigjjp  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(283)

我正在尝试手动将分区分配给使用者组中的每个使用者。但是,当您在组中添加使用者时,kafka(或者至少kafkapython)假设您希望组协调器执行所有分配。在能够手动管理分配分区的同时,有没有一种方法可以保留使用使用者组(特别是autocommit)的所有好处?我可以写一个自定义分区赋值器吗?
我使用的是kafkapython1.3.3库。

0kjbasz6

0kjbasz61#

是的,kafka使用者有一个属性“partition.assignment.strategy”,您可以在其中指定自己的自定义赋值器,默认值是rangeassignor
自动提交也是属性驱动的“enable.auto.commit”
Kafka消费者配置:https://kafka.apache.org/documentation/#consumerconfigs

pw9qyyiw

pw9qyyiw2#

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

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

相关问题