当一个新的Kafka使用者加入/离开使用者组时,Kafka运行时会触发一个重新平衡过程,以便执行分区到新使用者集的新分配/映射。关于再平衡过程,我有三个问题:
(1( 除了已经实现的算法之外,是否有可能以某种方式插入自定义的再平衡算法?
(2( 是否可以将外部变量传递给自定义算法?
(3( 除了已知的情况(如消费者离开、加入等(之外,是否有可能动态地、选择性地启动再平衡过程?
-
是的,您可以使用
partition.assignment.strategy
来设置自定义分配算法。自定义类需要实现ConsumerPartitionAssignor
。 -
分配器可以执行任何必要的逻辑来从环境或其他地方检索值。
-
自从Kafka 2.6以来,您可以使用
enforceRebalance()
来触发一个。