分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
19876 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
开篇词 (1讲)
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册

21 | 容灾(下):如何通过混沌工程提高系统稳定性?

你好,我是任杰。今天我们来聊聊混沌工程。
这一讲是第三个模块“分布式正确性及高可用”的最后一讲。我们前面学习了实现金融系统正确性、可用性的许多方法。
不过,尽管你掌握了各种金融系统的屠龙之技,平时工作也兢兢业业,但是业务方并不一定懂技术。他们怎么才能放心让几百亿上千亿的业务跑在你的系统上呢?
所以,这节课我们就来看看,如何通过混沌工程来证明系统是正确的。这一块内容涉及面非常广,所以我还是会照例给你重点讲解混沌工程背后的原理,你了解了背后的原理之后,很容易就能在实践中加以应用了。

分布式系统正确性理论

我们在学习算法的时候,老师和教材都会证明为什么算法是正确的。分布式系统也是一样,有很多对于分布式算法的正确性证明。但是不知道你发现了没有,我们从来没有说 Raft 共识算法是正确的?
Raft 算法已经在很多环境运行了很长的时间,从来没有人怀疑过它的正确性。如果你看过 Raft 算法的论文,也会觉得它应该是正确的。那为什么我们不会说 Raft 算法是正确的呢?
原因是现在都是通过形式语言的方式来证明分布式算法的正确性。形式语言证明有一个局限,它只能证明有限状态的情况。由于 Raft 算法涉及到无限种可能的情况,因此无法通过形式语言来证明正确性。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

混沌工程:提高分布式系统正确性的概率思维 本文深入探讨了混沌工程的原理和应用,强调了分布式系统正确性的概率性质。首先指出了无法通过形式语言证明所有情况下的正确性,提出了“用不正确来证明正确”的思路。混沌工程通过改变系统运行环境来提高混沌系统出问题的概率,从而提高了系统正确性的概率。文章详细介绍了实验的自变量、因变量和实验假设的定义,以及实验过程中的监控准备和实验步骤。特别强调了金融系统对正确性的重视,介绍了Jepsen测试用于验证分布式系统正确性的工具。作者还分享了在基于Raft共识算法的支付系统开发中的经验教训,强调了正确性是金融系统开发人员的道德底线。整体而言,本文通过深入的技术讨论,为读者提供了混沌工程的基本概念和应用方法,以及如何通过实验来提高系统稳定性的思路。混沌工程的概率思维为读者提供了一种全新的视角,帮助他们更好地理解和应用于分布式系统的正确性验证。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式金融架构课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • tt
    Raft算法的状态,包括谁是主节点,节点的转态:主节点、从节点、候选节点,任期,日志的状态。 无限中状态是指在节点数很多时,状态数就无穷大了么?

    作者回复: 详见答案

    2021-02-11
  • 共识算法没有定义所谓的正确性,但是有其他定义。 共识算法的特征: * 协商一致性:所有节点都接受相同的决议 * 诚实性:也叫安全性,所有的节点不能反悔,节点对于一项提议不能有两次决定(全序广播支持) * 合法性:如果决定了值V,则V必须是某个节点所提出的 * 可终止性*:节点不崩溃则最终一定可以达成某个节点所提议的V。 (Paxos由于活锁不一定满足)
    2021-06-10
    3
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部