kafka中
attention:
一个消费者只能属于一个消费者组;
某个消费者组中的一个消费者可以同一时刻消费某个topic内的多个partition;
某个topic内的一个partition同一时刻只能被某个消费者组内的一个消费者消费;
一个消费者组可以同时消费多个topic,一个消费者也可以同时订阅多个topic,这个消费者组内的消费者都尝试订阅topic1和topic2…topn,但是最终某个topic的某个具体partition只会被组内的某一个消费者消费;
消费者组之间不受此影响;
Rebalance是kafka中确保Consumer group 下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。
Rebalance触发的时机有:
1.消费者组中consumer的个数发生变化。例如有新的consumer加入到消费者组,或者是某个consumer停止了。
2.订阅的topic的个数发生了变化
消费者可以订阅多个主题,假设当前的消费者组订阅了三个主题,但有一个主题突然被删除了,此时也需要发生再均衡。
3.订阅的分区数量发生了变化
Rebalance过程会对consumer group产生非常严重的影响,Rebalance的过程中所有的消费者都将停止工作,直到Rebalance完成。