1、什麼是Paxos算法
Paxos算法是一種基於消息傳遞的且有高度容錯性的一種算法,解決的問題是一個分佈式系統如何就某個值(決議)達成一致。
2、Paxos算法中的三種角色
在Paxos算法中一共有三總角色:proposer、acceptor、learner;proposer負責提出提案;acceptor負責對提案作出裁決;leader負責學習獲得提案;爲了不單節點故障,會有一個acceptor集合。proposer向該集合發送提案,當有一半以上的成員贊成時,則贊成該提案。、
3、Paxos算法的主要過程
主要過程以下:兩部分:prepare階段、acceptor階段
prepare階段:prepare提出編號爲Mn的提案,向acceptor集合發送prepare請求。
acceptor作出反饋:保證不會在接受編號比Mn小的提案;若是acceptor已經批准過某提案,會向proposer返回已經批准的編號最大的提案的value值;若是acceptor收到一個編號爲Mn的請求編號大於acceptor已經響應的全部prepare請求的編號,則它會將本身已經批准過的編號最大的提案值反饋給proposer,同時acceptor承諾不會在接受編號比Mn小的提案(優化,忽略編號小於已批准的提案的要求),若是proposer收到了集合至少少於一半的響應,則
會發送一個針對Mn、Vn的acceptor請求給acceptor。Vn爲收到的全部響應中編號最大提案的值。若是響應不包括值,則能夠由proposer進行選擇任意值。
Accept階段:Accept收到acceptor請求後,只要未收到任何編號大於M的prepare請求,則經過該提案。(Accept階段接收提案的要求)
4、Paxos算法的應用
chubby(分佈式鎖服務、GFS中master選舉)