Kakfa Broker Leader的選舉
- Kakfa Broker集群受Zookeeper管理,
- 所有的Kafka Broker節點一起去Zookeeper上注冊一個臨時節點,因為只有一個Kafka Broker會注冊成功,其他的都會失敗,所以這個成功在Zookeeper上注冊臨時節點的這個Kafka Broker會成為Kafka Broker Controller,其他的Kafka broker叫Kafka Broker follower,(這個程序叫Controller在ZooKeeper注冊Watch),
- 這個Controller會監聽其他的Kafka Broker的所有資訊,如果這個kafka broker controller宕機了,在zookeeper上面的那個臨時節點就會消失,此時所有的kafka broker又會一起去zookeeper上注冊一個臨時節點,因為只有一個Kafka Broker會注冊成功,其他的都會失敗,所以這個成功在Zookeeper上注冊臨時節點的這個Kafka Broker會成為Kafka Broker Controller,其他的Kafka broker叫Kafka Broker follower ,
- 例如:一旦有一個broker宕機了,這個kafka broker controller會讀取該宕機broker上所有的partition在zookeeper上的狀態,并選取ISR串列中的一個replica作為partition leader(如果ISR串列中的replica全掛,選一個幸存的replica作為leader;如果該partition的所有的replica都宕機了,則將新的leader設定為-1,等待恢復,等待ISR中的任一個Replica“活”過來,并且選它作為Leader;或選擇第一個“活”過來的Replica(不一定是ISR中的)作為Leader),這個broker宕機的事情,kafka controller也會通知zookeeper,zookeeper就會通知其他的kafka broker,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/191003.html
標籤:其他
