先介绍几个概念,同步一下认知:
容灾:是指系统冗余部署,当一处由于意外停止工作,整个系统应用还可以正常工作。
容错:是指在运行中出现错误(如上下游故障或概率性失败)仍可正常提供服务。
可用性:描述的是系统可提供服务的时间长短。用公式来说就是A=MTBF/(MTBF+MTTR),即正常工作时间/(正常工作时间+故障时间)。
可靠性:描述的是系统指定时间单位内无故障的次数。比如:一年365天,以天为单位来衡量。有天发生了故障,哪怕只有1秒,这天算不可靠。其他没有故障的是可靠的。
稳定性:这个业界没有明确的定义,我的理解是:在受到各种干扰时仍然能够提供符合预期的服务的能力。
从要求的严格程度上:可用性<可靠性<稳定性。
可用性和可靠性更侧重于容灾,而对稳定性同时包含容灾和容错

容错和容灾
一、容灾
增加冗余性,通过在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。

容灾可分为三个层次:

1.数据容灾: 就是数据远程的备份,灾难发生时,只保证数据不丢失,但是业务会中断,慢慢恢复、重建。
2.应用容灾: 在数据备份或同步的基础上,还要建立一套相同的应用系统,除了涉及数据,还要涉及到主机、网络、存储、OS、软件等等。灾难发生时,业务能快速回复甚至不中断
3.业务容灾: 不仅包含了IT应用系统,还要包括办公场地、电话通讯、后勤保障等等,跟业务相关的一切都要考虑。

二、容错
容错(fault tolerance)指的是, 发生故障时,系统还能继续运行。

例如: 飞机有四个引擎,如果一个引擎坏了,剩下三个引擎,还能继续飞,这就是"容错"。同样的,汽车的一个轮子扎破了,剩下三个轮子,也还是勉强能行驶。

容错的目的是,发生故障时,系统的运行水平可能有所下降,但是依然可用,不会完全失败。

雪崩效应
微服务架构的应用系统通常包含多个服务层。微服务之间通过网络进行通信,从而支撑起整个应用系统,因此,微服务之间难免存在依赖关系。我们知道, 任何微服务并非100%可用,网络往往也很脆弱,因此难免有些请求会失败。

我们常把“基础服务故障”导致“级联故障”的现象称为雪崩效应。雪崩效应描述的是提供者不可用导致消费者不可用,并将不可用逐渐放大的过程。

例如: 服务D是一个辅助类型服务,整个业务不依赖于D服务,某天D服务突然响应时间变长,导致了核心服务C响应时间变长,其上请求越积越多,C服务也出现了响应变慢的情况,由于A,B强依赖于服务C,故而一个无关紧要的服务却影响了整个系统的可用。因此,当D不可用引起C不用,并将不可用像滚雪球一样放大到A和B时,雪崩效应就形成了。

雪崩是系统中的蝴蝶效应导致其发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头的发生,但是雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估,做好熔断,隔离,限流。

三、容错隔离的方法有哪些
我们再来看看常见的「容错隔离」方法有哪些:

超时: 这也是简单的容错方式。就是指在服务之间调用时,设置一个 主动超时时间,超过了这个时间阈值后,如果“被依赖的服务”还没有返回数据的话,“调用者”就主动放弃,防止因“被依赖的服务”的故障所影响。
限流: 顾名思义,就是限制最大流量。系统能提供的最大并发有限,同时来的请求又太多,服务不过来啊,就只好排队限流了,就跟去景点排队买票、去商场吃饭排队等号的道理一样一样儿的。
降级: 这个与限流类似,一样是流量太多,系统服务不过来。这个时候可以可将不是那么重要的功能模块进行降级处理,停止服务,这样可以释放出更多的资源供给核心功能的去用。同时还可以对用户分层处理,优先处理重要用户的请求,比如VIP收费用户等。
延迟处理: 这个方式是指设置一个流量缓冲池,所有的请求先进入这个缓冲池等待处理,真正的服务处理方按顺序从这个缓冲池中取出请求依次处理,这种方式可以减轻后端服务的压力,但是对用户来说体验上有延迟。
熔断: 可以理解成就像电闸的保险丝一样,当流量过大或者错误率过大的时候,保险丝就熔断了,链路就断开了,不提供服务了。当流量恢复正常,或者后端服务稳定了,保险丝会自动街上(熔断闭合),服务又可以正常提供了。这是一种很好的保护后端微服务的一种方式。
熔断技术中有个很重要的概念就是:断路器,说到熔断器,java技术栈的同学第一时间会想到Hystrix。熔断器有三种状态:

Closed(闭合状态,也就是正常状态)
Open(开启状态,也就是当后端服务出故障后链路断开,不提供服务的状态)
Half-Open(半闭合状态,就是允许一小部分流量进行尝试,尝试后发现服务正常就转为Closed状态,服务依旧不正常就转为Open状态)。

五、微服务架构中可用性风险有哪些?
我们先来看一下微服务架构中,常见的可用性风险到底有哪些吧,知道了有哪些风险我们才知道该如何去规避、去隔离风险。

我们可以从项目部署规模的角度去分析风险:

单机可用性风险: 这个很好理解,就是微服务部署所在的某一台机器出现了故障,造成的可用性风险。这种风险发生率很高,因为单机器在运维中本身就容易发生各种故障,例如 硬盘坏了、机器电源故障等等,这些都是时有发生的事情。不过虽然这种风险发生率高,但危害有限,因为我们大多数服务并不只部署在一台机器上,可能多台都有,因此只需要做好监控,发现故障之后,及时的将这台故障机器从服务集群中剔除即可,等修复了再重新上线到集群里。

单机房可用性风险: 这种风险的概率比单机器的要低很多,但是也不是完全不可能发生,在实际情况中,还是有一定概率的。比如最为常见的就是通往机房的光纤被挖断了,前段时间支付宝所在机房不是就发生过光纤被挖么。咱们全国大小城市都在疯狂的进行基建,修桥修路修房子,GDP就这么搞起来了,地下的光纤挖断几根不是再正常不过的事情了么,哈哈。如果我们的服务全部都部署在单个机房,而机房又出故障了,那就没辙了。好在,现在大多数中大型项目都会采用多机房部署的方案,比如同城双活、异地多活等。一旦某个机房出现了故障不可用了,咱们立即采用切换路由的方式,把这个机房的流量切到其它机房里。

跨机房集群可用性风险: 既然都跨机房集群了,可用性理论上应该没啥问题啊。但要知道这是在物理层面没有问题了,如果咱们的代码有坑,或者因为特殊原因用户流量激增,导致我们的服务扛不住了,那在跨机房集群的情况下一样会不可用。但如果我们提前做好了「容错隔离」的一些方案,比如 限流、熔断 等等,用上这些方法还是可以保证一部分服务或者一部分用户的访问是正常

原文链接:https://blog.csdn.net/u010979642/article/details/106948757

系统容错和容灾简要说明相关推荐

  1. 攻坚利器 | KFS助我们力挽狂澜,9天内政务系统开发迁移容灾全搞定!

    2022年2月25日晚10点 上线倒计时9天,愁云惨淡路在何方 日落月升,喧嚣的城市,逐渐归于宁静. 此刻,S市M大楼依旧灯火通明,作为X项目开发商项目经理的我,还在为项目的如期上线紧张地忙碌着.离上 ...

  2. 系统迁移和容灾备份?对方扔给你一个Mondo Rescue

    作者|谢泳 来源|翼安研习社 发布时间|2021-09-20 1. 简介 在企业生产工作中,可能会面临这样的情况:要将一个配置好的.包含数据文件的Linux系统做备份,以便在原系统被破坏的时候能够及时 ...

  3. 教科书范本级:银行容错容灾体系建设与实操性演练设计

    本文根据姜岩老师在[deeplus直播第253期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 姜岩 某城商银行 数据中心总经理 拥有27年银行应用系统开发.运维管 ...

  4. 揭阳市人民医院基于对称双数据中心的双活容灾系统建设项目

    第三部分 用户需求 需求分析 信息系统现状 经过近几年的信息化建设,揭阳市人民医院的信息化取得了重要的突破和长足的进步,在医院管理和医疗服务方面发挥了良好作用,信息系统成为我院医疗业务发展中不可缺少的 ...

  5. SharePlex for Oracle应用系统高可用和容灾方案

    第1章                             前言 在企业信息化进程不断加快的今天,保持业务的连续性是企业用户进行数据存储时必须考虑的重要方面.灾难的出现可能导致生产停顿.客户满意度 ...

  6. 舟山医院妇幼保健院区网络系统及容灾系统采购项目

    第一章                  采购公告 根据<×××政府采购法>.<政府采购货物和服务招标投标管理办法>等法律法规,经舟山市财政局政府采购监管处批准,就舟山医院(舟 ...

  7. 长江证券集中交易系统本地查询及异地容灾备份系统建设

    1993年,世贸中心大楼发生爆炸,爆炸前约有350家企业在该楼中工作.1年后,再回到世贸大楼的公司变成150家,有200家企业由于无法存取重要的信息系统而倒闭.消失.1995年1月,日本神户地区大地震 ...

  8. 扬州市住房公积金管理中心应用支撑平台及异地容灾系统建设项目

    扬州市住房公积金管理中心业务系统须进行升级,为满足业务系统运行需要,需建设应用支撑平台及容灾系统系统. 配置及性能要求: (1)       投标人必须对以下所有招标参数要求逐项编写<技术规格偏 ...

  9. 异地容灾系统方案设计与分析

    目 录 第 1 章 容灾技术规范 1.1 容灾的总体规划 1.1.1 技术指标 RPO.RTO 1.1.2 国际标准 SHARE 78 1.1.2.1 Tier0 1.1.2.2 Tier1 1.1. ...

最新文章

  1. 如何用C#语言构造蜘蛛程序
  2. FileReader (三) - 网页拖拽并预显示图片简单实现
  3. Informatica ETL workflow 定时运行功能介绍 scheduler
  4. 电脑有回声_专递课堂互动教室现场有回声怎么办?
  5. 新手制作bom表格教程_抖音短视频怎么制作?这里有全部最新教程+指导,新手0基础上手!...
  6. 配置文件configSections节点使用实例      。
  7. 从零开始学视觉Transformer(1):Hello Vision Transformer
  8. php 分类排序,php将地区分类排序的算法
  9. ECCV 2020 | 小米提出 Fair DARTS :公平的可微分神经网络搜索
  10. opencv+Java+android 灰度图像
  11. 计算机处理信息的过程按先后顺序可表述为,信息加工理论按照信息处理的先后顺序将记忆区分为三个阶段系统;感觉记忆、()长时记忆。...
  12. Linux之MariaDB
  13. xx闪购——顶部的菜单栏
  14. MacOS怎么设置动态桌面,heic动态桌面壁纸怎么用
  15. javaScript导出excel表格,数据量过大导出失败问题
  16. Android 多媒体框架stagefright
  17. 【JAXP】Dom方式解析XML文件
  18. 蓝桥杯学习笔记十:PWM占空比测量实验
  19. 文件系统FatFsR0.09a翻译(三):ff.h
  20. word计算机计算公式求总和,word2010如何算总和 word中如何在表格中计算总和

热门文章

  1. 手机地图渲染的方式讨论
  2. 圣诞纯情手势告白(Mediapipe基本使用手势识别详解)
  3. 网络工程人的自我介绍
  4. 单片机程序读取烧录方法记录
  5. 主成分分析PCA的前世今生
  6. Flutter 沙龙回顾 | 跨平台技术趋势及字节跳动 Flutter 架构实践
  7. 设计原则_LOD原则
  8. SQL Server 使用ORDER BY 关键字进行排序(升序、降序、多个字段排序)
  9. 利用MATLAB中的newrb函数进行函数逼近
  10. 修复好一个超赢软件数据库