概述
Kafka中的Rebalance称之为再均衡,是Kafka中确保Consumer group下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。
Rebalance触发的时机
- 消费者组中consumer的个数发生变化。例如:有新的consumer加入到消费者组,或者是某个consumer停止了。
- 订阅的topic个数发生变化
- 订阅的topic分区数发生变化
Rebalance的不良影响
- 发生Rebalance时,consumer group下的所有consumer都会协调在一起共同参与(消耗了一部分性能),Kafka使用分配策略尽可能达到最公平的分配
- Rebalance过程会对consumer group产生非常严重的影响,Rebalance的过程中所有的消费者都将停止工作,直到Rebalance完成
消费者分区分配策略
分配规则:
一个分区只能有一个消费者
一个消费者可以消费多个分区