上传者: 42120563
|
上传时间: 2021-12-15 20:33:25
|
文件大小: 15KB
|
文件类型: -
simpleRaft
什么?
Raft在纯Python中的实现。
为什么?
在阅读了有关Raft算法的几篇文章之后,我认为我会实现它,并将其用于需要Raft提供的一致性以确保其正确性的我的项目中。
细节
此实现尝试保留尽可能纯的Python,以确保在此存储库中的代码外部运行此依赖项所需的依赖关系很少。 我还努力使它在Python 2.6+上运行,以使其尽可能地灵活。
该系统分为两部分。 有一个状态类系统,用于定义节点在Raft运行期间可以通过的特定状态所需的功能,其中包括:
追随者
候选人
领导
每个人的角色都在其类文件中定义。 除了这些状态类外,还定义了消息,这些消息将用于保持消息格式的正确定义并尽可能地从有线格式中抽象出来。
最后一部分是通信层。 当前的通信层目前将使用使用随机子组的Gossiping,但是它将以易于实现的方式编写,并在以后插入不同的通信层。
参考: