没写完,有点不舒服,偷个懒
(1)简介
Paxos协议是少数在工程实现中证实的强一致性、高可用的去中心化分布式协议。类似投票过程,有一组完全对等的参与节点(acceptor),这组节点各自就某一件事做出决议,若某决议获得超过半数节点的同意则生效。
优点:Paxos协议只要有超过一半的节点正常,就可以工作,能很好对抗宕机、网络分化等异常情况。
(2)协议描述
a)节点角色
Paxos协议中,有三类节点:
Proposer:提案者,可以有多个,Proposer提出议案(value)。所谓value,在工程上可以是任何操作,如:“修改某个变量的值为某个值”、“设置当前primary为某个节点”等。Paxos协议中同一将这些操作抽象为value。不同的Proposer可以提出不同的甚至矛盾的value,但对同一轮Paxos过程,最多只有一个value被批准。
Acceptor:批准者,Acceptor有N个,Proposer提出的value必须获得超过半数(N/2 + 1)的Acceptor批准后才能通过,Acceptor之间完全对等独立。
Learner:学习者,Learner学习被批准的value,所谓学习就是通过读取各个Proposer对value的选择结果,如果某个value被超过半数Proposer通过,则Learner学习到了这个value。类似Quorum机制,某个value需要获得W=N/