raft協議 分布式環境下的資料一致性問題

2022-09-04 10:57:08 字數 928 閱讀 2543

閱讀了乙個有意思的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的三...