Paxos協議 - 分佈式系統(四)

Paxos協議

1、Paxos算法

    Paxos算法是萊斯利·蘭伯特(Leslie Lamport,就是 LaTeX 中的"La",此人在微軟研究院)1990年提出的一種基於消息傳遞的一致性算法。

1.1 、目的 : 

    解決分佈式環境下一致性的問題。基於消息傳遞通信模型的分佈式系統中,進程可能會慢、被殺死或者重啓,消息可能會延遲、丟失、重複,在基礎Paxos場景中,保證不論發生以上任何異常,都不會破壞決議的一致性。

2、Paxos詳解

2.1 三個角色

Proposer(提議者):提議一個值

Acceptor(接受者):對每個提議進行投票;

Learner(學習者):被告知投票的結果,不參與投票過程。

2.2 提交步驟

2.2.1  第一階段 

         1、proposer向網絡內超過半數的acceptor發送prepare消息 
         2、acceptor正常情況下回復promise消息

2.2.2 第二階段

         1、 在有足夠多acceptor回覆promise消息時,proposer發送accept消息
         2、 正常情況下acceptor回覆accepted消息
         3、 當 Learner 發現有大多數的 Acceptor 接收了某個提議,那麼該提議的提議值就被 Paxos 選擇出來
因爲在整個過程中可能有多個proposer針對同一件事情發出以上請求,所以在每個過程中都會有些特殊情況處理,這也是爲了達成一致性所做的事情。如果在整個過程中沒有多個proposer來競爭,那麼這個操作的結果就是確定無異議的。表示了多個節點達成共識的複雜性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章