前言
在嘗試事做分散式的架構時,原則上在多台機器同時需要處理一件事情的時候,但是多台機器必須知道這項事情是否被處理、紀錄等,舉例: 若有 message
queue(後簡稱 MQ)架設成叢集式架構,那如何讓不同的機器保持有一樣 MQ 順序不亂,機器間溝通就需要有「共識」,讓每個人來拿的都是同一個順序。
什麼是 Raft
Raft 是一容易理解的共識演算法,具有與 Paxos 演算法相當的容錯與效能。
何謂「共識」?
分散式系統容錯中十分重要的問題,包含了多台伺服器同意數值的改變。傳統的共識演算法需要過多數決(magority)來進行共識,舉例來說:一個 5
台伺服器叢集系統,可以允許在兩台伺服器當機,而其餘伺服器持續運作;倘若有更多台伺服器當機,就會停止運作。
第一章節:介紹
將近十年來多數共識演算法都是基於 Paxos 或是受它影響,也就成為主流教導學生的題材。很不幸運的事 Paxos
演算法並不是那麼容易理解,需要更複雜的架構來實作系統。