我把分布式共识单独列了一个章节,包含这几个部分:
写作这一章的本意是从解决问题的本质去理解分布式系统,理解了 paxos ,就懂了 raft 的设计思路。理解了 raft ,自然也更能体会 etcd 、consul 甚至 k8s 容错的设计
阅读地址: https://www.thebyte.com.cn/consensus/summary.html
如果有谬论、错误的地址,恳请指正(可以在 github issue 或者这个帖子留言)。
1
mer 335 天前
感觉讲 Paxos 这里为了循序渐进反而把文章写的太复杂了(看到 Basic Paxos 这里)
首先核心需求这里 "必须在有限时间内做出决议(不能有太多轮投票)。" 这个应该是楼主自己加的吧,basic paxos 本身就有活锁问题(文章最后实际也讲到了)所以不可能有这个需求 然后就是解决方案的第一第二第三感觉有点为了错而错,比如 “按时序决策节点只接受它收到的第一个提案...这也就意味着我们无法保证在一轮投票中达成共识“ 平票的话我理解本身就是 paxos 的一个场景,两个 quorum 中至少有一个节点是重叠的,那么这个节点就能知道哪个提案的序号更大并响应。其他的也类似,其实简单讲一下需求然后直接讲 Basic Paxos 算法就好。 另外这篇文章很多图之前也在其他文章看到过(如果都是本人原创请无视),博采众长的文章还是要避免堆砌,尽量梳理清楚,另外最好标明出处。 以上如有错误请指出,感谢分享。 |
2
isno OP @mer
感谢指点,Paxos 我自己感觉写乱了,加了挺多我自己的理解(这些理解可能也是错误的),这几篇文章得我重新再构思下。 图片不是我原创的,文章内的图片包括网络上对 Paxos 的分析基本都来源于这个论文 https://ongardie.net/static/raft/userstudy/paxos.pdf |