Raft 協議簡介

1、學習資源鏈接
動畫演示原版論文論文翻譯

2、基本概念
Distributed Consensus:多個節點就某個事物達成一致(比如某個變量的值)。
Raft:一種可理解分佈式一致性算法,解決如何達成分佈式一致的問題,並且要求算法易於理解(paxos難於理解實現)。

3、Raft 如何實現 distributed consensus
Raft 主要通過 Leader Election 和 Log Replication 保證分佈式一致

(1)Leader Election:同一個term中,獲得 > 1/2 節點投票的節點成爲leader,所有對系統的改變通過 leader 進行。
關鍵術語:
a)term(選舉週期):單調遞增的num,raft 協議各環節始終以term高的節點發出的信息爲準。每個節點收到信息後,對比自己的term和信息源的term,若對方term高於自己,則接受信息;否則拒絕信息,並告知對方自己的term。
b)節點狀態:follower,candidate,leader
c )election timeout:節點超過election timeout 時間沒收到 leader心跳,則變爲candidate,嘗試選舉自己爲leader
d)heartbeat timeout:leader每隔 heartbeat timeout ,向其他節點發送 append entries 心跳。

(2)Log Replication:client發送的請求被leader記錄爲log,log首先是 uncommitted。leader向其他節點同步log,> 1/2 節點同步log後,leader將log變爲committed狀態,並apply log 改變系統。然後通知follower commit log。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章