raft, Raft分布式一致协议的实现

分享于 

2分钟阅读

GitHub

  繁體 雙語
An implementation of the Raft distributed consensus protocol.
  • 源代码名称:raft
  • 源代码网址:http://www.github.com/peterbourgon/raft
  • raft源代码文档
  • raft源代码下载
  • Git URL:
    git://www.github.com/peterbourgon/raft.git
    Git Clone代码到本地:
    git clone http://www.github.com/peterbourgon/raft
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/peterbourgon/raft
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    raft

    这是一个实现了 Raft的consensus协议。 这对的benbjohnson实现有很大的影响。 它专注于提供一个干净和可用的API,以及良好的内部结构。

    Build Status

    用法

    Raft网络中的node 由一个服务器的结构表示。 在典型的应用程序中,节点将创建一个服务器,并使用对等接口将它的公开给其他节点。

    服务器只有在可以与其他服务器通信时才有用。 这个库包括一个 HTTP传输 ( 入口) 和 HTTP对等,它结合在一起允许通过rest端点进行通信。 目前,在应用程序中嵌入Raft服务器是最简单的方法。 请参见这个完整的示例示例。

    其他几个传输即将到来;请参见下面的TODO。

    添加和删除节点

    Raft协议没有 node 发现或者"加入/离开"语义的启示。 协议假设一个理想的网络配置,即对网络中节点的预先配置,并描述一个机制,以安全地复制该配置。

    我对共同一致性的实施遵循那些基本假设。 节点可以通过请求描述完整网络拓扑的收费的动态地添加或者移除。

    待办事项

    • 领导选举完成。
    • 日志复制失败,已经完成
    • 基本单元测试完成。
    • HTTP传输已经完成。
    • net/rpc 传输
    • 其他传输?
    • 配置更改( 联合一致性模式) 已经完成
    • 日志压缩
    • 复杂单元测试( 在本文中描述的每个场景中)

    相关文章