分布式系统关注点(2)——烦人的数据不一致问题到底怎么解决?——通过“共识”达成数据一致性


阅读目录

  • “共识”是什么?为什么会产生?
  • 拜占庭将军问题
  • BFT类算法
  • CFT类算法
  • 结语

这次准备开启一个新的系列来写了,聊聊分布式系统中的关注点。节奏不会排的太紧凑,计划两周一更吧。

  本文是本系列的第二篇。是前一篇《》的后续内容。

  前一篇可能讲的过于通俗,逼格不高,不太受大家待见。。本篇会继续坚持尽量讲的通俗易懂,坚信让更多的人看懂才有更大的价值。不过相对来说内容的专业度有所上升。

  已经对数据一致性问题做了一次剖析,那么怎么解决由于故障导致的不一致问题呢?本文会围绕“共识”这个点展开。

http://thesecretlivesofdata.com/raft/。

        题外话,大家经常用的Zookeeper里的「ZAB」(ZooKeeper Atomic Broadcast)算法也是CFT类算法,是以Fast Paxos算法为基础实现的。

https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals-Problem.pdf

[2]《Practical Byzantine Fault Tolerance》,Miguel Castro&Barbara Liskov,1999。

链接:http://101.96.10.63/pmg.csail.mit.edu/papers/osdi99.pdf

[3]《The Part-Time Parliament》,Leslie Lamport,1998。

链接:https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Part-Time-Parliament.pdf

[4]《In Search of an Understandable Consensus Algorithm》,Diego Ongaro&John Ousterhout,2013

链接:https://raft.github.io/raft.pdf

作者:Zachary

出处:https://zacharyfan.com/archives/370.html

?关于作者:张帆(Zachary,个人微信号:Zachary-ZF)。坚持用心打磨每一篇高质量原创。欢迎扫描右侧的二维码~。

定期发表原创内容:架构设计丨分布式系统丨产品丨运营丨一些思考。

如果你是初级程序员,想提升但不知道如何下手。又或者做程序员多年,陷入了一些瓶颈想拓宽一下视野。欢迎关注我的公众号「跨界架构师」,回复「技术」,送你一份我长期收集和整理的思维导图。

如果你是运营,面对不断变化的市场束手无策。又或者想了解主流的运营策略,以丰富自己的“仓库”。欢迎关注我的公众号「跨界架构师」,回复「运营」,送你一份我长期收集和整理的思维导图。