在Kafka中,當有新消費者加入或者訂閱的topic數發生變化時,會觸發Rebalance(再均衡:在同一個消費者組當中,分區的所有權從一個消費者轉移到另外一個消費者)機制,Rebalance顧名思義就是重新均衡消費者消費。Rebalance的過程如下:
第一步:所有成員都向coordinator發送請求,請求入組。一旦所有成員都發送了請求,coordinator會從中選擇一個consumer擔任leader的角色,並把組成員信息以及訂閱信息發給leader。第二步:leader開始分配消費方案,指明具體哪個consumer負責消費哪些topic的哪些partition。一旦完成分配,leader會將這個方案發給coordinator。coordinator接收到分配方案之后會把方案發給各個consumer,這樣組內的所有成員就都知道自己應該消費哪些分區了。所以對於Rebalance來說,Coordinator起着至關重要的作用