这是对 multi-paxos 协议服务的实现,并提供了给了使用者可以拓展的简单接口,以及简单的客户端。本实现有如下特性:
Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某个值达成一致,保证不论发生以上任何异常,都不会破坏决议的一致性。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。
paxos 协议中有三种角色:
paxos 协议保证在每一轮的提案中,只要某一个提案被大于半数的 accepter 接受,本轮的提案也就生效了,不会再被修改和破坏。具体的算法说明可以看维基百科。
使用 MyPaxos 协议服务,需要下面几步:
PaxosCallback
在 https://github.com/luohaha/MyPaxos 上有我使用 MyPaxos 来实现一个分布式的简单 kv 存储的例子。
欢迎 star!