Kafka 重新平衡 - 将 Kafka 消费者分配给分区

Kafka rebalancing - assignement of Kafka consumers to partitions

当新的 Kafka 消费者 joins/leaves 成为消费者组时,Kafka 运行时会触发重新平衡过程,以便对新的消费者集执行新的 assignment/mapping 分区。关于再平衡过程,请问我三个问题:

(1) 除了已经实现的算法之外,是否可以以某种方式插入自定义再平衡算法?

(2) 是否可以将外部变量传递给自定义算法?

(3) 除了已知的情况(例如消费者离开、加入等)之外,是否可以动态和有选择地启动再平衡过程

  1. 是的,您可以使用partition.assignment.strategy设置自定义分配算法。自定义 class 需要实现 ConsumerPartitionAssignor.

  2. 分配者可以执行任何必要的逻辑来从环境或其他地方检索值。

  3. 从Kafka 2.6开始,你可以使用enforceRebalance()触发一个。