Raft算法
转:http://feixiao.github.io/ Raft是什么? 一致性算法允许一组机器像一个整体一样工作,即使其中一些机器出现故障也能够继续工作下去。 一致性算法是从复制状态机的背景下提出的。在这种方法中,一组服务器上的状态机产生相同状态的副本,并且在一些机器宕掉的情况下也可以继续运行。复制状态机在分布式系统中被用于解决很多容错的问题。 Raft 是一种为了管理复制日志的一致性算法。 Raft 一致性算法 Raft 通过选举一个高贵的领导人,然后给予他全部的管理复制日志的责任来实现一致性。领导人从客户端接收日志条目,把日志条目复制到其他服务器上,并且当保证安全性的时候告诉其他的服务器应用日志条目到他们的状态机中。拥有一个领导人大大简化了对复制日志的管理。 通过领导人的方式,Raft 将一致性问题分解成了三个相对独立的子问题。 领导选举:一个新的领导人需要被选举出来,当先存的领导人宕机的时候 日志复制:领导人必须从客户端接收日志然后复制到集群中的其他节点,并且强制要求其他节点的日志保持和自己相同。 安全性:如果有任何的服务器节点已经应用了一个确定的日志条目到它的状态机中,那么其他服务器节点不能在同一个日志索引位置应用一个不同的指令。(???怎么理解?) Raft 基础 一个 Raft 集群包含若干个服务器节点;通常是5个,这允许整个系统容忍2个节点的失效。在任何时刻