浅谈Raft协议( 二 )


(2)然后在下一个心跳上将更改发送给其它所有 , 收到更改后 , 也是先写入到各自的本地log , 然后就会响应—— 一阶段提交;
(3)节点收到超过半数节点的响应后 , 才提交到自身节点上 , 提交完成之后就会回复成功 , 然后再下次心跳会同步给其它节点 , 其它节点收到心跳后再各自提交到到各自节点 , 此时集群数据就已经一致了—— 二阶段提交 。
用一组图来表示日志复制的过程如下:
4、
集群中每一个节点 , 都在本地维护着一个快照 , 里面记录了最后提交的index、当前选举的任期term和数据的最新值 , 这样在发生故障的时候 , 就会通过读取快照从而快速恢复到之前的状态 。
【浅谈Raft协议】以上就是Raft算法的简单介绍 , 只是简单讲解了Raft算法的工作过程 , 并没有针对各种问题展开分析 , 其实像挂了 , 集群就会重新选举 , 选举过程上面已经介绍了;像脑裂问题 , Raft算法的设计上就已经解决了脑裂问题:只要收到超过半数以上的选票时才会成为 , 这中机制已经保证了不会出现脑裂问题 。