美文网首页
高可用系统设计

高可用系统设计

作者: 知止9528 | 来源:发表于2021-03-21 15:13 被阅读0次

高可用建设,其实是一个系统工程,贯穿在系统建设的整个生命周期。


image.png

具体来说,系统的高可用建设涉及架构阶段、编码阶段、测试阶段、发布阶段、运行阶段,以及故障发生时,逐一进行分析:

  • 架构阶段:考虑系统的可扩展性和容错性,避免出现单点问题。例如多地单元化部署,即使某个IDC甚至地市出现故障,仍不会影响系统运转
  • 编码阶段:保证代码的健壮性,例如RPC调用时,设置合理的超时退出机制,防止被其他系统拖垮,同时也要对无法预料的返回错误进行默认的处理
  • 测试阶段保证CI的覆盖度以及Sonar的容错率,对基础质量进行二次校验,并定期产出整体质量的趋势报告
  • 发布阶段:系统部署最容易暴露错误,因此要有前置的checklist模版中置的上下游周知机制以及后置的回滚机制
  • 运行阶段:系统多数时间处于运行态,最重要的是运行时的实时监控及时发现问题准确报警并能提供详细数据,以便排查问题
  • 故障发生:首要目标是及时止损,防止影响面扩大,然后定位原因、解决问题,最后恢复服务

对于日常运维而言,高可用更多是针对运行阶段而言的,此阶段需要额外进行加强建设,主要有以下几种手段:

  • 预防:建立常态压测体系,定期对服务进行单点压测以及全链路压测,摸排水位
  • 管控做好线上运行的降级、限流和熔断保护。需要注意的是,无论是限流、降级还是熔断,对业务都是有损的,所以在进行操作前,一定要和上下游业务确认好再进行。就拿限流来说,哪些业务可以限、什么情况下限、限流时间多长、什么情况下进行恢复,都要和业务方反复确认
  • 监控建立性能基线,记录性能的变化趋势;建立报警体系,发现问题及时预警
  • 恢复:遇到故障能够及时止损,并提供快速的数据订正工具,不一定要好,但一定要有

在系统建设的整个生命周期中,每个环节中都可能犯错,甚至有些环节犯的错,后面是无法弥补的或者成本极高的。所以高可用是一个系统工程,必须放到整个生命周期中进行全面考虑。同时,考虑到服务的增长性,高可用更需要长期规划并进行体系化建设。

相关文章

  • 高可用系统设计

    高可用建设,其实是一个系统工程,贯穿在系统建设的整个生命周期。 具体来说,系统的高可用建设涉及架构阶段、编码阶段、...

  • 高容错分布式计算系统是什么样的?

    高容错分布式计算系统,就是要让系统高可用。您的问题可以理解为如何设计高可用的分布式计算系统。 高可用的分布式计算系...

  • 复杂度来源:高可用

    笔记 高可用定义:系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。 系统的高可用方...

  • redis高可用sentinel哨兵模式

    redis高可用 高可用的概念 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因...

  • 可扩展系统就得这么设计

    前面分享了高并发系统(高并发系统设计)以及高可用系统(高可用系统)的解决方案,今天我们再来看另一个很重要的模块,可...

  • 03 如何提升系统性能?

    高并发系统设计的三大目标:高性能、高可用、可扩展高并发承担更大的流量。性能反映了系统的使用体验。可用性表示系统可以...

  • 分布式系统原理

    高可用是指系统无中断的执行功能的能力,代表了系统的可用程度,是进行系统设计时必须要遵守的准则之一。而高可用的实现方...

  • 05 | 复杂度来源:高可用(读书笔记)

    高可用的定义系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。简而言之就是高可用就是...

  • 高可用-keepalived

    什么是高可用? “高可用性”(High Availability) 通常来描述一个系统经过专门的设计,从而减少停工...

  • 究竟啥才是互联网架构“高可用”

    摘自 架构师之路一、什么是高可用高可用HA****(High Availability)是分布式系统架构设计中必须...

网友评论

      本文标题:高可用系统设计

      本文链接:https://www.haomeiwen.com/subject/mfoncltx.html