raft是通俗易懂版的paxos算法
Raft 將一致性問題分解成了三個相對獨立的子問題:領導者選舉(Leader election)、日誌複製(Log replication)、安全性(Safety)。
核心
主要用來解決:分佈式存儲系統中維護多個副本節點的一致性問題。
狀態
- leader
- follower
- candidate
對於leader有一個任期,是依次增長的,只有最新的任期有效。
對於每個follower有一個隨機的睡眠時間,如果有leader存在時,leader通過定時發送心跳包來重置這個時間。當睡眠時間耗光時,follower自動成爲candidate,然後進行選舉,如果超過半數的節點同意,則該節點成爲新一屆的leader。