一致性協議(Consensus Algorithm)

T1YSL發表於2022-05-11

1、多數派

2、兩階段Accept

第一階段:Propose階段。Proposers向Acceptors發出Propose請求, Acceptors針對收到的Propose請求進行Promise承諾

第二階段:Accept階段。收到多數派Acceptors承諾的Proposer,向 Acceptors發出Accept請求,Acceptors針對收到的Accept請求進行接收 處理

第三階段(可最佳化):Commit階段。發出Accept請求的Proposer,在收 到多數派Acceptors的接收之後,標誌著本次Accept成功。向所有 Acceptors追加Commit訊息

--------------------------------

經典Paxos

特點:一次例項需要兩階段訊息達成(一階段搶leader、二階段選定值);

訊息數:2f+1個節點一次例項需要(2f+1) *2*2+2次訊息通訊

缺點:With multiple concurrent proposers, conflicts and restarts are likely (higher load → more conflicts),效能低、活鎖可能


Paxos協議族介紹

Paxos演算法的變種不是非此即彼的關係,在不衝突的情況下,可以組合使用

Multi-Paxos

特點:一個Leader執行多次例項;(先經典,然後租約維持)

訊息數:2f+1個節點一次例項需要(2f+1) *2+2次訊息通訊

Raft

Paxos的一種簡化:有主、日誌單向複製

透過投票選取主節點leader(任期、心跳,超半數、日誌長度)

叢集以Leader的日誌為準,複製到其他節點,其他節點無條件跟隨

透過日誌連續無空洞確保叢集日誌的一致性

超半數的節點接收到的日誌可提交應用

已提交的日誌不會丟失

在2N+1個節點叢集中,最多容忍N個節點失效


協議對比



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2893473/,如需轉載,請註明出處,否則將追究法律責任。

相關文章