Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人在微软研究院)1990年提出的一种基于消息传递的一致性算法。
解决分布式环境下一致性的问题。基于消息传递通信模型的分布式系统中,进程可能会慢、被杀死或者重启,消息可能会延迟、丢失、重复,在基础Paxos场景中,保证不论发生以上任何异常,都不会破坏决议的一致性。
1、proposer向网络内超过半数的acceptor发送prepare消息 2、acceptor正常情况下回复promise消息
1、 在有足够多acceptor回复promise消息时,proposer发送accept消息 2、 正常情况下acceptor回复accepted消息 3、 当 Learner 发现有大多数的 Acceptor 接收了某个提议,那么该提议的提议值就被 Paxos 选择出来 因为在整个过程中可能有多个proposer针对同一件事情发出以上请求,所以在每个过程中都会有些特殊情况处理,这也是为了达成一致性所做的事情。如果在整个过程中没有多个proposer来竞争,那么这个操作的结果就是确定无异议的。表示了多个节点达成共识的复杂性。