paxos协议

它允许一组不一定可靠的处理器(服务器)在某些条件得到满足情况下就能达成确定的安全的共识,如果条件不能满足也确保这组处理器(服务器)保持一致。

实现

集群有leader节点和follow节点组成,所有的事务操作必须有leader发起,如果请求在follow节点则转发到leader节点。leader对于所有的事务操作,会发起事务提议,必须半数以上节点同意,此事务才能提交,保证数据一致性。不满足条件,事务会被丢弃。

zab协议

zab协议其实是zookeeper根据paxos的自行实现,大同小异。

raft协议

Paxos和Raft都是为了实现Consensus一致性这个目标,这个过程如同选举一样,参选者需要说服大多数选民(服务器)投票给他,一旦选定后就跟随其操作。Paxos和Raft的区别在于选举的具体过程不同。

在Raft中,任何时候一个服务器可以扮演下面角色之一:

  • Leader: 处理所有客户端交互,日志复制等,一般一次只有一个Leader.
  • Follower: 类似选民,完全被动
  • Candidate候选人: 类似Proposer律师,可以被选为一个新的领导人。

results matching ""

    No results matching ""