Paxos介绍
-
Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。
-
在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。Paxos算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。
-
简单的理解,在分布式系统中,即使出现网络异常以及节点出现机器死机的异常,利用Paxos算法可以保证每个节点整个系统中节点状态的一致性
Paxos过程
客户端(提案者) 服务器(接收者)
初始化---------------------------------------------------------
c --等待执行的命令 Tmax --当前已发布的最大票号
t=0 --当前尝试的票号
C --当前存储的命令
Tstore = 0 --用来存储命令C的票
阶段1------------------------------------------------------------ 主要是尝试从服务器获取提案的票号,客户端有了有效的提案票号,其提案才可能被服务器接受
1 t=t+1
2 向所有服务器发送消息,请求得到编号为t的票
3 if t > Tmax --服务器还没有发