重平衡其实就是一个协议,它规定了如何让消费者组下的所有消费者来分配topic中的每一个分区。
比如一个topic有50个分区,一个消费者组内有10个消费者,在协调者的控制下让组内每一个消费者分
配到5个分区,这个分配的过程就是重平衡。
重平衡的触发条件主要有三个:
1,消费者组内成员发生变更,这个变更包括了增加和减少消费者,比如消费者宕机退出消费组;
2,主题的分区数发生变更,kafka目前只支持增加分区,当增加的时候就会触发重平衡;
3,订阅的主题发生变化,当消费者组使用正则表达式订阅主题,而恰好又新建了对应的主题,就
会触发重平衡。
1 再平衡的一些情况
现在假设一个主题有三个分区,一个消费组有三个消费者,最初的业务关系如下图,注意分区的下标在实际中是从0开始的,这里为了描述直观,从1开始,请大家注意: