大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

  • 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:002612

评论

发布
暂无评论
发现更多内容

Hugging Face 的应用

霍格沃兹测试开发学社

C++ 之 perf+火焰图分析与调试

芯动大师

perf C++ 火焰图

【重磅升级】积木报表 v1.8.1 版本发布,支持填报功能

JEECG低代码

交互式UI原型设计神器 Principle for Mac 直装激活版

Rose

AI+医疗:营销机遇洞察2024

易观分析

医疗 人工智能’

纯CSS实现海浪文字效果

南城FE

CSS 前端 动画

mac苹果电脑小霸王游戏:FC红白机游戏600合集 for mac 单机游戏下载

你的猪会飞吗

Mac游戏下载 Mac游戏推荐

智进AI,共话增长 | 数智时代,企业需要什么样的AI生产力?

ToB行业头条

看!全是科技与狠活的“统一终端安全”,如何为终端设备叠buff

芯盾时代

身份安全 终端安全 统一运维

Tableau Desktop Pro 2020(数据分析软件)破解版安装包

Rose

Nitro PDF Pro for Mac(全能PDF编辑软件) v13.3.1fix激活版

Rose

阿里巴巴中国站商品搜索API返回值解析与实战

技术冰糖葫芦

api 网关 API Gateway API 测试 API 策略 pinduoduo API

SyncBird Pro for Mac(iPhone文件管理器) v4.1.1激活版

Rose

阿里云Elasticsearch AI搜索实践

阿里云大数据AI技术

人工智能 自然语言处理 elasticsearch rag AI搜索

【Tomcat源码分析 】 类加载机制的源码解读

派大星

tomcat源码解读

VMware Fusion Pro 13 for Mac(VM虚拟机) v13.5.0中文激活版

Rose

阿里巴巴中国站1688商品搜索API返回值深度解析与实战应用

代码忍者

API 测试 API 策略

精准学:用一根垂直大模型支柱,撑起教育普惠的未来

脑极体

AI

开发者必备的 4 大类 AI 工具盘点,错过你就亏大了!

伤感汤姆布利柏

Java 内部类的使用场合介绍

秃头小帅oi

百年码头遇见数智化:华为和天津港解锁新质生产力

Alter

避坑指南!细说Python自动化办公的5大缺点

程序员晚枫

Python 自动化办公

基于STM32+SHT30设计的环境温度与湿度检测系统(IIC模拟时序)

DS小龙哥

9月月更

After Effects 2022 for Mac(AE 2022) v22.6.0中文激活版

Rose

如何使用 StarRocks 管理和优化数据湖中的数据?

镜舟科技

数据湖 数据处理 分布式架构 StarRocks

Moment for Mac(菜单栏倒数日应用) v1.4激活版

Rose

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