让我们假设,有5个消费者的消费者组订阅了一个具有10个分区的主题。现在,如果再将10个分区添加到同一主题。触发重新平衡。为什么kafka会重新分配以前分配的分区,为什么它不能只在使用者组之间分配新创建的分区。
由于Kafka分区分配器当前的工作方式,用户重新平衡始终是“停止世界”操作,在此过程中,所有分区首先从用户释放,然后再重新分配。
也就是说,有StickyAssignor
试图保留先前的分配,而默认分配器StickyAssignor
不提供任何保证。
要使用RangeAssignor
,请在用户配置中将StickyAssignor
设置为partition.assignment.strategy
。