kafka在组中的一个订户被严格分配到特定分区的情况下重新平衡

sf6xfgos  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(424)

kafka重新平衡的目的是将topic的所有分区重新分配给订户组活动成员,以便任何一个topic分区在任何给定时刻只被一个使用者使用。因此,如果使用者刚刚订阅了一个主题,那么一切都很清楚,但是使用者api还提供了一种方法,可以将特定分区分配给使用者: void assign(Collection<TopicPartition> partitions) 现在假设我们有:
具有5个分区的主题:1、2、3、4、5
有三个成员的消费群体:1、2、3
成员1和2刚刚订阅了一个主题,成员3已经为自己分配了分区1
那么,在这种情况下,再平衡将如何发挥作用呢?分区1是否总是分配给成员3(当它处于活动状态时),从而导致其他成员只能从其他分区(2、3、4、5)读取?组协调器是否也可以将另一个分区分配给成员3?如果成员3宕机后又返回,分区1会发生什么情况?
提前谢谢

7xzttuei

7xzttuei1#

在Kafka文件中发现: public void assign(Collection<TopicPartition> partitions) 通过此方法手动分配主题不使用使用者的组管理功能。因此,当组成员身份或集群和主题元数据更改时,不会触发重新平衡操作。请注意,不能同时使用assign(collection)的手动分区分配和subscribe(collection,consumerbalancelistener)的组分配。
所以组中的所有使用者都应该使用手动分区分配或仅仅订阅(获取分区的动态分配)。

相关问题