分布式系统知识学习(二)共识算法

分布式系统知识学习(二)共识算法,第1张

分布式系统知识体系庞大而精妙,不花费大量的时间无法掌握。本文根据一些前人经验和自己摸索总结,由浅入深、由基础概念到实际运用,给出了一条学习曲线相对平滑的分布式学习攻略,希望和大家多多交流,共同进步。本篇为基础篇学习,涉及到了数百篇论文及博客资料,需要耐下心慢慢学习才可以体会到其精髓,欲速则不达。

另外,本系列文章在github上优先更新,有空才会更新CSDN的同篇文章,有兴趣的可以关注Awesome-Distributed-System

共识算法 两阶段提交和三阶段提交

两阶段提交和三阶段提交是共识算法的基础方法,也是广泛使用的共识算法,可以参考以下文献了解。

《Consensus Protocols: Two-Phase Commit》《Consensus Protocols: Three-phase Commit》
Paxos Paxos算法是共识算法中最经典的算法,目前依然被大量的商业化软件使用。Paxos被公认较难理解,而且实现起来困难,因为作为一个纯学术理论的产物,设计伊始并未考虑工业界实现的难度。 《A plain english introduction to CAP Theorem》一文用一个通俗易懂的事例讲述了CAP原理,可以作为入门读物。《CAP Theorem: Revisited》一文通过绘图和简洁的讲解说明了为什么只有可能出现CP或者AP而不存在CA模型。《The CAP FAQ》是Henry Robinson在github上发表的一系列FAQ,这里前排推荐这位大牛的博客,有很多不错的文章,如《Distributed systems theory for the distributed systems engineer》。
Raft Raft算法是Paxos的改良版,因为由工业界提出,其初衷即为便于实现,因此是一个叫较为容易实现的工业级共识算法。 首先Raft的经典论文《In Search of an Understandable Consensus Algorithm》 当然是要认真学习的然后相对于论文,有一个可视化的算法演示网站也是不容错过的。
Zab

ZAB算法全称Zookeeper Atomic Broadcast,是Zookeeper中使用的共识算法,作为开源项目,广泛应用于Hadoop,HBase等之中。

首先经典论文一定要学习,《ZooKeeper’s atomic broadcast protocol: Theory and practice》然后还有经典论文《Zab: High-performance broadcast for primary-backup systems》雅虎的论文也不容错过《A simple totally ordered broadcast protocol》

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/943987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-18
下一篇 2022-05-18

发表评论

登录后才能评论

评论列表(0条)

保存