左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家
180928 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 119 讲
左耳听风
15
15
1.0x
00:00/00:00
登录|注册

41 | 弹力设计:认识故障和弹力设计

自动修复和自我保护
降低MTTR
故障是不可预测突发的,而且相当难缠
故障是正常的,而且是常见的
有计划的宕机原因
无计划的宕机原因
Availability = MTTF / (MTTF + MTTR)
边车模式
降级机制
熔断机制
重试机制
补偿事务
无状态服务
有状态服务
请求幂等性
异步调用
服务隔离
弹力设计目的
故障不可避免
故障原因
系统可用性测量
业务分片设计模式
优先级队列设计模式
索引表设计模式
CQRS设计模式
缓存设计模式
Service Mesh设计模式
网关设计模式
应对大流量能力
一致性
可伸缩性
容错能力
认识故障和弹力设计
性能设计篇
管理设计篇
弹力设计篇

该思维导图由 AI 生成,仅供参考

你好,我是陈皓,网名左耳朵耗子。
我前面写的《分布式系统架构的本质》系列文章,从分布式系统的业务层、中间件层、数据库层等各个层面介绍了高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,也就是所谓的“纲”。通过这个“纲”,你能够按图索骥,掌握分布式系统中每个部件的用途与总体架构思路。
为了让你更深入地了解分布式系统,在接下来的几期中,我想谈谈分布式系统中一些比较关键的设计模式,其中包括容错、性能、管理等几个方面。
容错设计又叫弹力设计,其中着眼于分布式系统的各种“容忍”能力,包括容错能力(服务隔离、异步调用、请求幂等性)、可伸缩性(有 / 无状态的服务)、一致性(补偿事务、重试)、应对大流量的能力(熔断、降级)。可以看到,在确保系统正确性的前提下,系统的可用性是弹力设计保障的重点。
管理篇会讲述一些管理分布式系统架构的一些设计模式,比如网关方面的,边车模式,还有一些刚刚开始流行的,如 Service Mesh 相关的设计模式。
性能设计篇会讲述一些缓存、CQRS、索引表、优先级队列、业务分片等相关的架构模式。
我相信,你在掌握了这些设计模式之后,无论是对于部署一个分布式系统,开发一个分布式的业务模块,还是研发一个新的分布式系统中间件,都会有所裨益。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

分布式系统设计中的弹力设计是关键的技术挑战之一。本文从容错设计的概念出发,介绍了系统可用性的测量方法和故障原因的分类。作者指出,对于分布式系统来说,故障是不可避免的,因此弹力设计的目标是降低故障修复时间,使系统能够自动修复或自我保护。文章还提到了弹力设计在云平台和微服务等复杂环境下的重要性,以及AWS将“Design for Failure”作为设计原则的重要性。接下来的文章将介绍相关的设计模式,包括容错、性能和管理等方面。通过本文的学习,读者可以深入了解弹力设计的目的,系统可用性的衡量指标以及分布式系统中常见的故障原因。这对于设计和部署分布式系统的工程师和开发人员来说将会有所裨益。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《左耳听风》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(42)

  • 最新
  • 精选
  • data
    老师可以提供代码案例来讲解吗这样感觉可以学的更多哈哈

    作者回复: 这些东西的代码量太大,你可以参看开源软件

    2018-04-04
    1
  • 华烬
    看到挖掘机的时候我笑了,印象中真的经历过光纤被挖断的故障
    2018-02-26
    31
  • qgymje
    在听这文章的时候,我想到了可能容错这个概念,是统一分布式系统所有知识的核心,几乎所有的设计方案都是围绕着容错进行的,无论是简单的Supervisor启动服务进程,K8S里Pod的重启机制,还是应用层面的限流,熔断,降级,都是为了保证系统的可用性,也就是所谓的弹性;而幂等,补偿,以及数据复制等设计方案,是为了保证系统的正确性,也从另一方案说明了系统的容错能力。
    2020-06-18
    1
    13
  • 迷途书童
    弹力这个词是左耳朵耗子翻译的一个词,大家应该慎用,要么直接用Resiliency,要么用容错。 因为在很多公司里,很少直接说,我们这个系统支持弹力设计。从感性的角度来说,容错这个词很难与弹力划上等号
    2020-06-13
    2
    10
  • songyy
    我觉得自己缺少解决 大规模 高可用 分布式 问题的经验,一直希望在这方面进行深挖但无奈工作范围限制,没有相关的问题可以遇到。期待能在这个系列之中看到更多的例子 😁
    2018-02-21
    10
  • 第一装甲集群司令克莱斯特
    看到挖掘机挖端光纤的时候,太有意思了。有一次我们的系统不稳定,网络抖动故障,持续几天就出现那个点,上下游系统怎么查也查不出来。最后发现了,那个点下班时间,人员过多走过那条机房外面的路,通过地板砖踩踏,影响李里面的光纤网线了。
    2020-10-26
    2
    7
  • 一飞
    异步调用为啥是容错设计? 应该是提高性能的一种策略。
    2019-03-28
    2
    5
  • 88591
    很多公司应该支撑不到挖掘机这个阶段就倒闭了。
    2018-12-02
    4
  • 蓝海
    耗子哥可否在后面出一篇有关gcc优化带来的相关问题(各种崩溃,优化选项对程序做了哪些假设,哪些"非标准"的代码会导致优化错误),如何判断崩溃是由于优化,二进制不兼容,链接错误导致,而非一般的代码错误。gcc的优化选项看了官网说明很多遍,但说明过于简洁(编译原理只停留在前端印象,优化技术生疏),想了解的感性一些。这些bug问题解决都很费力,想归纳出一条方法经验论,怎样的代码要求才能对各种优化级别不出错(gcc本身bug除外)。以上的问题以及问题本身是否成立,想请耗子哥指导
    2018-02-22
    2
    4
  • 楊_宵夜
    耗子叔每篇文章真是干货十足。
    2018-02-22
    3
收起评论
显示
设置
留言
42
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部