发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

聊聊分布式系统的认知故障和弹力设计

  • 2018-03-14
  • 本文字数:1402 字

    阅读完需:约 5 分钟

更多左耳朵耗子的独家干货,请订阅极客时间出品的陈皓全年专栏《左耳听风》,一次订阅、永久阅读。即日起,戳此订阅立享以下两大福利:

福利一:原价 ¥199/ 年,极客时间新用户注册立减 ¥30

福利二:每邀请一位好友购买,你可获得 36 元现金返现,多邀多得,上不封顶,立即提现(提现流程:极客时间服务号 - 我的 - 现金奖励提现)

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

本文摘自陈皓(左耳朵耗子)在极客时间 App 上开始的全年付费专栏《左耳听风》,已获授权。欲阅读更多独家文章,请点击此处订阅专栏阅读(支持微信支付)。

我前面写的《分布式系统架构的本质》系列文章,从分布式系统的业务层、中间件层、数据库层等各个层面介绍了高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等,也就是所谓的“纲”。通过这个“纲”,你能够按图索骥,掌握分布式系统中每个部件的用途与总体架构思路。

为了让你更深入地了解分布式系统,在接下来的几期中,我想谈谈分布式系统中一些比较关键的设计模式,其中包括容错、性能、管理等几个方面。

  • 容错设计又叫弹力设计,其中着眼于分布式系统的各种“容忍”能力,包括容错能力(服务隔离、异步调用、请求幂等性)、可伸缩性(有 / 无状态的服务)、一致性(补偿事务、重试)、应对大流量的能力(熔断、降级)。可以看到,在确保系统正确性的前提下,系统的可用性是弹力设计保障的重点。
  • 管理篇会讲述一些管理分布式系统架构的一些设计模式,比如网关方面的,边车模式,还有一些刚刚开始流行的,如 Service Mesh 相关的设计模式。
  • 性能设计篇会讲述一些缓存、CQRS、索引表、优先级队列、业务分片等相关的架构模式。

我相信,你在掌握了这些设计模式之后,无论是对于部署一个分布式系统,开发一个分布式的业务模块,还是研发一个新的分布式系统中间件,都会有所裨益。

今天分享的就是《分布式系统设计模式》系列文章中的第一篇《弹力设计篇之“认识故障和弹力设计”》。

系统可用性测量

对于分布式系统的容错设计,在英文中又叫 Resiliency(弹力)。意思是,系统在不健康、不顺,甚至出错的情况下有能力 hold 得住,挺得住,还有能在这种逆境下力挽狂澜的能力。

要做好一个设计,我们需要一个设计目标,或是一个基准线,通过这个基准线或目标来指导我们的设计,否则在没有明确的基准线的指导下,设计会变得非常不明确和不可预测或不可测量。可测试和可测量性是软件设计中非常重要的事情。

我们知道,容错主要是为了可用性,那么,我们是怎样计算一个系统的可用性的呢?下面是一个工业界里使用的一个公式:

其中,

  • MTTF 是 Mean Time To Failure,平均故障前的时间,即系统平均能够正常运行多长时间才发生一次故障。系统的可靠性越高,MTTF 越长。(注意:从字面上来说,看上去有 Failure 的字样,但其实是正常运行的时间。)
  • MTTR 是 Mean Time To Recovery,平均修复时间,即从故障出现到故障修复的这段时间,这段时间越短越好。

这个公式就是计算系统可用性的,也就是我们常说的,多少个 9,如下表所示。

根据上面的这个公式,为了提高可用性,我们要么提高系统的无故障时间,要么减少系统的故障恢复时间。

然而,我们要明白,我们运行的是一个分布式系统,对于一个分布式系统来说,要不出故障简直是太难了。

注:以上仅为文章的一部分,欲阅读全文,请点击此处订阅专栏(支持微信支付)。一次订阅,永久阅读。

2018-03-14 19:001971

评论

发布
暂无评论
  • 期末测试|来赴一场满分之约!

    来赴一场满分之约!

    2023-04-12

  • 架构实战营模块二作业

    微信朋友圈高性能设计

    2021-11-01

  • 【愚公系列】2022 年 05 月 二十三种设计模式 (十七)- 中介者模式 (Mediator Pattern)

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化

    2022-05-29

  • DDIA 读书笔记(7)分布式系统的问题

    根据墨菲定律,我们需要用最悲观的态度来看待分布式系统中可能出现的问题,本文将对这些问题进行总结。

    2020-12-21

  • 听过闰年闰月,听过闰秒吗?

    闰年闰月大家都知道,可是你听说过闰秒这回事情吗?

    2021-01-16

  • 10 分钟带你彻底搞懂组合设计模式

    2022-06-10

  • 结课测试|这些面试问题,你都掌握了么?

    为了帮助你检验自己的学习效果,我特别为你准备了一套结课测试题。测试题共有20道题目,满分100分。

    2021-05-15

  • 冲云破雾——10 分钟带你了解六大云上服务架构

    讲师介绍: 吕蕴偲,SRE 工程师,就职于国内某云服务商,负责 DevOps 及云上解决方案架构设计,多年云行业相关领域经验。熟悉 AWS 亚马逊云、阿里云等公有云,同时拥有 AWS 解决方案架构师认证及阿里云解决方案架构师认证,对多云云上架构设计部署有相关经验。 问题背景: 随着云上服务的开通,我们的需求从地端转换到了云端,以前 IDC 的那套模式已经不完全适用了。线上的架构搭建与线下的搭建有着本质的区别,线下的部署没有所谓的服务模型区分,可以笼统地归结到“基础设施”服务上来。而云上,有着较为明显的界限划分,即分为 IaaS 基础设施即服务、PaaS 平台即服务和 SaaS 软件即服务,近两年又出现了新兴 FaaS 函数即服务的服务模式。 面对这些复杂且多样的云服务,我们该如何根据不同需求搭建架构设计?本节课,我们将从简单到复杂、从单体到分布式说一说常见的几种架构设计和选择。 内容看点: 几种常见的架构设计模式 云端服务架构选择

    2021-12-24

  • 10 分钟带你彻底搞懂迭代器设计模式

    2022-07-08

  • 王者荣耀商城异地多活架构设计

    为王者荣耀商城设计异地多活架构

    2022-03-26

  • 牛掰!阿里人用 7 部分讲明白百亿级高并发系统(全彩版小册开源)

    提到“高并发”相信你们应该都不会感到陌生!此时你脑中应该会浮现好多有关高并发的:业务急剧增长、电商购物、电商秒杀、12306抢票、淘宝天猫各种活动等;都是需要用到高并发的,那么如何去设计一个高并发系统抵挡这些冲击呢?

    2021-08-31

  • 【愚公系列】2022 年 05 月 二十三种设计模式 (六)- 适配器模式 (Adapter Pattern)

    <font color=#999AAA >设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式

    2022-05-06

  • 10 分钟带你彻底搞懂 DDD 开发框架 Axon

    讲师介绍: 萧亦然,资深技术专家、TGO 鲲鹏会会员、阿里云 MVP、腾讯云 TVP。 问题背景: 当下,随着微服务架构的不断发展,领域驱动设计(DDD)也得到了越来越多的应用。但业界并没有针对如何实现 DDD 中聚合、领域事件等复杂概念提供统一的开发规范。在这个背景下,开发人员迫切希望能够引入即插即用的开源框架,来简化 DDD 应用程序的开发过程,Axon就是这样一款开发框架。 内容看点: Axon 的技术组件 Axon 的应用方式

    2022-03-15

  • 队列同步器 AQS

    同步器的设计是基于模板方法模式的,

    2022-05-12

  • 架构 11 周

    11周主要是高可用性系统相关知识

    2021-02-09

  • 【愚公系列】2022 年 06 月 二十三种设计模式 (十九)- 观察者模式 (Observer Pattern)

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化

    2022-06-01

  • Java 基础笔试题,rabbitmq 教程 go,netty 框架工作原理

    在分布式系统要满足CAP原则,一个提供数据服务的存储系统无法同时满足:数据一致性、数据可用性、分区耐受性。

    2021-10-25

  • 万字长文说透分布式锁

    “分布式锁”这个问题快被说烂了,奈何笔者实在没有找到一个满意的答案,故记录自己寻找答案、总结的过程。分布式锁的设计涉及了许多分布式系统相关的问题,许多地方值得推敲,非常有意思。

    2021-09-05

  • 终于有人!把双十一电商秒杀系统高并发架构全部讲清楚了

    提到“高并发”相信你们应该都不会感到陌生!此时你脑中应该会浮现好多有关高并发的:业务急剧增长、电商购物、电商秒杀、12306抢票、618、双11各种活动等;都是需要用到高并发的,那么如何去设计一个高并发系统抵挡这些冲击呢?

    2021-08-12

发现更多内容

手写桶排序算法

实力程序员

程序员 C语言 排序算法

国际视频质量评估算法竞赛:火山引擎成功夺冠

CWE发布2021年最危险的25种软件缺陷

华为云开发者联盟

安全 隐私保护 安全漏洞 cwe 软件缺陷

短视频获客软件系统开发公司

英特尔加速制程工艺和封装技术创新

E科讯

论文解读丨Zero-Shot场景下的信息结构化提取

华为云开发者联盟

测试 图网络 信息结构化 图卷积网络 zero-shot

Cypress 自动化测试

admin

自动化测试 Cypress 测试 单元测试 UI测试

SpringBoot启动加载监听器以及监听应用启动阶段事件

捡对象的cy

springboot

来自网络资源资产管理的灵魂拷问

鲸品堂

网络 资源 运营商

手写计数排序算法

实力程序员

程序员 C语言 排序算法 造轮子

一个Android程序员的腾讯面试心得,进阶学习资料!

欢喜学安卓

android 面试 移动开发 程序猿

私域流量系统开发,APP源码搭建

获客I3O6O643Z97

私域流量 抖音霸屏

带你认识MindSpore量子机器学习库MindQuantum

华为云开发者联盟

mindspore 量子机器 MindQuantum 量子机器学习库

财务或类财务系统数值精度设计

路边水果摊

数字 财务 精度 数值

音视频时代你还不会NDK开发?详细的Android学习指南

欢喜学安卓

android 程序员 面试 移动开发

音视频时代你还不会NDK开发?看完必懂

欢喜学安卓

android 程序员 面试 移动开发

图解红黑树

Ayue、

数据结构

我的职场规划

escray

学习 极客时间 朱赟的技术管理课 7月日更

经典译文 | 项目经理必读的基本工作法则

LigaAI

项目管理 项目经理

以1敌10不是梦,Spring Boot企业级真实应用案例

博文视点Broadview

AI开发者十问:10分钟了解AI开发的基本过程

华为云开发者联盟

AI 框架 modelarts hilens

小师妹学IO系列文章集合-附PDF下载

程序那些事

Java io nio 程序那些事

开源 Rainbond 5.3.2 版本发布,易用的云原生应用管理平台

Barnett

云计算 开源 基础软件 小版本升级

抖音获客系统开发

获客I3O6O643Z97

抖音 头条抖音 抖音霸屏

给新手学习MySQL的建议

Simon

MySQL

一例智能网卡(mellanox)的网卡故障分析

安第斯智能云

后端

哔哩哔哩B站视频下载器推荐(简单又好用)

资源君

工具 分享 哔哩哔哩 b站视频下载 教程分享

外包学生管理系统的架构设计

面向对象的猫

Python OpenCV Canny 边缘检测知识补充

梦想橡皮擦

Python 7月日更

手把手教你实现Android编译期注解

vivo互联网技术

android 注解 sdk

科技监管能源运作?智慧能源从光热发电技术开始描述

一只数据鲸鱼

数据可视化 智慧能源 光热发电

聊聊分布式系统的认知故障和弹力设计_语言 & 开发_陈皓_InfoQ精选文章