Raft演算法由斯坦福大學的Diego Ongaro和John Ousterhout于2014年在論文《In Search of anUnderstandable Consensus Algorithm》中提出,Raft演算法面向對多個決策達成一致的問題,分解了Leader選舉、日志復制和安全方面的考慮,并通過約束減少了不確定性的狀態空間,
典型的程序包括以下兩個主要階段:
- Leader選舉:開始所有節點都是Follower,在隨機超時發生后未收到來自Leader或Candidate訊息,則轉變角色為Candidate,提出選舉請求,最近選舉階段(Term)中得票超過一半者被選為Leader;如果未選出,隨機超時后進入新的階段重試,Leader負責從客戶端接收log,并分發到其他節點;
- 同步日志:Leader會找到系統中日志最新的記錄,并強制所有的Follower來重繪到這個記錄,資料的同步是單向的,
此處日志并非是指輸出訊息,而是各種事件的發生記錄,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/56261.html
標籤:其他
