1. 程式人生 > >淺談zk(4).leader如何選舉?

淺談zk(4).leader如何選舉?

如果leader掛了怎麼辦? 當然是重新選舉一個新的leader呀, 選舉流程如下: 1)、所有當前server向所有節點廣播訊息,去竟選leader 2)、收到回執 3)、向小於或等於當前節點編號的節點發送廣播 4)、比較投票數, 如果獲得的票數>n/2+1,則推舉為leader 5)、被推舉的節點狀態由looking->leader 舉例: 叢集有5臺機器,標號分別為 0~5, leader為4,假如4掛掉了,需要重新選舉新的leader,流程如下: 1、序號為1、2、3、5 裝置首次相互廣播, 都去竟選leader, 廣播的時候把自己的代號傳遞出去 2、廣播後,大家都會收到回執 1號: 1、2、3、5 2號: 1、2、3、5 3號:1、2、3、5 5號:1、2、3、5 3、 首輪廣播完畢後,各自節點都收到回執, 進行2輪廣播 廣播原則是向小於或等於當前節點的裝置進行廣播, 2輪廣播後收到的回執 1號: 1、2、3、5 2號: 2、3、5 3號: 3、5 5號: 5 3、比較投票數, 得票數>n/2+1,推舉為leader 很顯然,經過2輪投票選舉,1號的得票數為4>4/2+1, 被推舉為leader。 恭喜1號。