閱讀了乙個有意思的ppt,是standford大學發表的raft協議
**:下面自己總結下咯:
1.raft是乙個實現了解決分布式一致性問題的協議
2.分布式環境下的每個節點有三種狀態:
follower
candidate
leader
3.所有的節點開始都是follower狀態
一旦他們不能檢測到leader就能成為candidate
candidate會請求其他節點投票,得到大多是節點的投票就會成為leader,這個過程叫做leader election
4.節點的每個改變都會增加節點的日誌條目,提交之後leader會複製日誌條目到從節點上,在大多數從節點成功增加日誌條目之後,提交成功,leader值更新,leader通知從節點已經更新成功,從節點更新資料,這個過程叫做log replication。
5.leader election
raft有兩個timeout設定來控制選舉
第乙個是election timeout
election timeout指的是follower等待成為candidate的時間,在150ms到300ms之間
election timeout乙個follower成為乙個開始乙個election term
投票給自己,請求其他節點投票,在得到大多數節點投票之後,重置election timeout,成為leader
第二個是hearbeat timeout
6.log replication
客戶端傳送更新請求
leader增加日誌條目
在下個heartbeat時,日誌變化發給follower
在大多數從節點成功之後,leader提交資料並響應客戶端
下次heartbeat timeout之後,從節點資料更新
後面還有分片的集群可保持一致性,自己看吧
Raft協議 分布式系統應用
前言 在了解raft之前,我們先了解consensus一致性這個概念,它是指多個伺服器在狀態達成一致,但是在乙個分布式系統中,因為各種意外可能,有的伺服器可能會崩潰或變得不可靠,它就不能和其他伺服器達成一致狀態。這樣就需要一種consensus協議,一致性協議是為了確保容錯性,也就是即使系統中有一兩...
分布式 Raft演算法
raft也是分布式一致性協議,主要是用來競選主節點。有三種節點 follower,candidate和leader。leader會週期性的傳送心跳給follower。每個follower都設定了乙個隨機的競選超時時間,一般為150ms 300ms,如果在這個時間內沒有收到leader的心跳包,就會變...
RAFT 區塊鏈中分布式共識協議
即便如此paxos演算法還是沒有得到重視,2001年lamport 覺得同行無法接受他的幽默感,於是用容易接受的方法重新表述了一遍 paxos made 可見lamport對paxos演算法情有獨鍾。近幾年paxos演算法的普遍使用也證明它在分布式一致性演算法中的重要地位。2006年google的三...