「分佈式」看完這個動畫秒懂 Raft 算法

「分佈式」看完這個動畫秒懂 Raft 算法

感謝為偉大的網絡,給我們提供了這麼好的資源。

一個動畫讓你秒懂Raft協議:http://thesecretlivesofdata.com/raft/

Raft協議中的基本概念

在Raft協議中,同一時刻個種節點只能處在以下三種狀態中的一種

  • Follower 都是以該轉態開始,如果檢測到沒有Leader,狀態變為Candidate
  • Candidate 向其他節點拉選票,得到大多數節點的投票,變為Leader,稱為”Leader Election“
  • Leader 所有對系統的修改都要先經過Leader。每個修改都會寫一條日誌(Log Entry)。

Leader 收到修改請求後,操作過程如下,該過程叫"日誌複製Log Replication"

  • 複製日誌到所有Follower節點(replicate entry)
  • 大多數節點響應時才提交日誌
  • 通知所有Follower節點日誌以提交
  • 整個系統處於一致狀態

最重要的幾個問題

  • Leader選舉
  • 選舉投票平局,進行加時賽(隨機時間(150-300ms)重新選舉)
  • 網絡分區(腦裂),改朝換代,當然以新領導新任期為準,未提交(uncommitted)的操作丟棄(回滾)

整理了一下最近的【SpringBoot】系列文章,方便碼友閱讀。


分享到:


相關文章: