Raft

维基百科,自由的百科全书
跳到导航 跳到搜索

Raft是一個共識演算法,取代Paxos。Raft的目標是提供更好理解的演算法[1][2]:1,並且證明可以提供與Paxos相同的容錯性以及性能[1][2]:1

簡介[编辑]

Raft透過選舉領袖英语:leader)的方式實做共識演算法。

在Raft叢集(英语:Raft cluster)裡,伺服器可能會是這三種身份其中一個:領袖英语:leader)、追隨者英语:follower),或是候選人英语:candidate[2]:5。在正常情況下只會有一個領袖,其他都是追隨者[2]:5。而領袖會負責所有外部的請求,如果不是領袖的機器收到時,請求會被導到領袖[2]:5

通常領袖會藉由固定時間發送訊息,也就是「心跳(英语:heartbeat)」[2]:5,讓追隨者知道叢集的領袖還在運作。而每個追隨者都會設計超時機制(英语:timeout),當超過一定時間沒有收到心跳(通常是150 ms或300 ms[2]:6),叢集就會進入選舉狀態。

Raft將問題拆成數個子問題分開解決[2]:1,讓人更容易了解:

  • 領袖選舉(英语:Leader Election
  • 記錄複寫(英语:Log Replication
  • 安全性(英语:Safety

參考文獻[编辑]

  1. ^ 1.0 1.1 Raft Consensus Algorithm. [2017-12-31]. 
  2. ^ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Diego Ongaro, John Ousterhout, In Search of an Understandable Consensus Algorithm (Extended Version) (PDF), [2017-12-31] 

相關連結[编辑]

外部連結[编辑]