技术编程|分布式一致性算法,你确定不了解一下( 四 )


日志复制(是一个2PC提交) leader收到客户端或者其他节点转发过来需要共识的值 , 会跟随心跳一起广播给其他节点 , 进行写入其他节点写入后响应成功给leader , 当leader收到大多数的follower响应的成功 , 发出commit命令其他节点收到commit后 , 进行事务提交 , 响应成功为leader , leader收到大多数的commit成功 , Raft完成 。如果leader没有挂掉 , 或者发生网络分区 , 就会一直是这个leader进行事务发起 。
总结
【技术编程|分布式一致性算法,你确定不了解一下】本文从集中式到分布式理论CAP、BASE以及2PC、3PC流程 , 描述了分布式事务常用的思想;再详细说明了Paxos以及Raft算法流程等 。 Paxos以及Raft算法属于CFT算法范畴 , 都能容忍最多n/2(向下取整)的节点出现宕机、网络分区等的强一致性算法 。 Paxos属于比较晦涩的算法 , 工程实现比较复杂 , 但其思想很有借鉴意义 。 有兴趣的可以去看看Paxos的推导过程 , 个人认为很有意思 , 能够想明白每一步 , 对于理解其他算法 , 也大有帮助;也可以去看看Zookeerper的ZAB算法 , 后面有机会专门写一篇 。 但这些算法不能真正意义上用于区块链共识 , 毕竟leader说什么 , 其他节点就会执行 , 没有节点之间的共识过程 。 那什么算法可以用于区块链共识呢?


推荐阅读