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来竞争,那么这个操作的结果就是确定无异议的。表示了多个节点达成共识的复杂性。

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