分享一个 Java 实现的 multi paxos 协议服务

2017-01-20 15:59:45 +08:00
 luohaha

MyPaxos

这是对 multi-paxos 协议服务的实现,并提供了给了使用者可以拓展的简单接口,以及简单的客户端。本实现有如下特性:

项目地址在 https://github.com/luohaha/MyPaxos

paxos 协议的简单说明

Paxos 算法解决的问题是在一个可能发生上述异常的分布式系统中如何就某个值达成一致,保证不论发生以上任何异常,都不会破坏决议的一致性。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。

paxos 协议中有三种角色:

paxos 协议保证在每一轮的提案中,只要某一个提案被大于半数的 accepter 接受,本轮的提案也就生效了,不会再被修改和破坏。具体的算法说明可以看维基百科

总体架构和流程示意图

使用

使用 MyPaxos 协议服务,需要下面几步:

https://github.com/luohaha/MyPaxos 上有我使用 MyPaxos 来实现一个分布式的简单 kv 存储的例子。

欢迎 star!

2397 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX