一致性協議(Consensus Algorithm)
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Raft論文《 In Search of an Understandable Consensus Algorithm (Extended Version) 》研讀RaftGo
- Paxos 一致性協議協議
- 快取一致性協議快取協議
- Zookeeper一致性協議——ZAB協議
- CAP一致性協議及應用解析協議
- 一致性協議之三階段提交協議
- 分散式一致性協議Raft全面詳解(建議收藏)分散式協議Raft
- ZooKeeper一致性協議ZAB學習筆記協議筆記
- 分散式應用中的一致性協議分散式協議
- 分散式理論(六) - 一致性協議Raft分散式協議Raft
- Paxos、Raft不是一致性演算法/協議?Raft演算法協議
- mesi--cpu記憶體一致性協議記憶體協議
- 使用GO實現Paxos分散式一致性協議Go分散式協議
- CPU快取一致性協議MESI,memory barrier和java volatile快取協議Java
- 一致性協議淺析:從邏輯時鐘到Raft協議Raft
- 【譯】WebSocket協議第二章——一致性要求(Conformance Requirements)Web協議ORMUIREM
- Replication (Part 2): Transactions, Consistency and Consensus
- Raft協議和ZAB協議Raft協議
- Gossip協議也叫Epidemic協議(流行病協議)Go協議IDE
- 分散式一致性協議之2PC和3PC分散式協議
- 一文看盡 Raft 一致性協議的關鍵點Raft協議
- 基於學習的快取一致性協議帶參驗證快取協議
- 快取記憶體一致性協議MESI與記憶體屏障快取記憶體協議
- OceanBase的一致性協議為什麼選擇 Paxos 而不是 Raft?協議Raft
- 頁面連結跳轉--指定協議,半協議,無協議協議
- 協議協議
- 淺談WebSocket協議、WS協議和WSS協議原理及關係Web協議
- Gossip協議和Grpc協議的區別Go協議RPC
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- 二進位制協議 VS 文字協議協議
- 匯流排協議系列——USART協議初探協議
- 生成樹協議與多生成樹協議協議
- XModem協議協議
- swift協議Swift協議
- UART協議協議
- SPI協議協議
- WebSocket協議Web協議
- 協議號協議