• 业务系统高可用性建设


    1. 为什么需要高可用建设

    高可用是一种风险控制能力,使得系统具有更高的可用性。高可用的前提是:所有的事物都不是100%可靠的。在社会环境中,公司内部由员工、软件服务、硬件都组成,外部公司有客户、股东等,公司的目标是收益,创造并获取价值,需要良好的商誉。实际情况:

    • 内因:人和物都不是100%可靠的。
    • 外因:如果做不到高可用,公司和社会层面业务影响很大。
    • 根因:从公司角度,要控制风险,保障公司价值,避免商机根本

    2. 什么是高可用性

    高可用性(High Availability)是指系统或服务能够持续提供高水平的可用性和可靠性,即在面对各种故障、错误和异常情况时,仍能保持持续运行和正常工作。可用性关注可访问性,可靠性关注功能正确性和时效性。

    用计算公式:MTBF / ( MTBF + MTTR ),MTBF指平均无故障时间,MTTR指平均故障修复时间。

    3. 如何建设高可用性

    从可用性公式看到,可用性来源于增大平均无故障时间,以及减小故障修复时间。先介绍两个概念:

    • 风险:未来发生危害的一种可能性,但实际未发生
    • 故障:已发生或正在发生危害,是风险变成现实的结果。

    风险概率P、故障范围R、故障时间T、故障影响面

    最后风险期望公式有:

    所以从公式可以得到控制风险的4大因素。

    • 减少风险数量,比如重大活动封网
    • 降低风险概率,比如代码CR,灰度切流
    • 减小故障影响范围,比如以大拆小,每个个体之间相互隔离
    • 缩短故障时间,比如快速止血

    3.1 整体思路

    按照故障的时间节点,分为事前、事中和事后,

    • 事前:稳定性设计、异常监测、容量评估、预案演练等识别并控制风险;
    • 事中:合理的决策和响应机制,快速发现、定位、止损和修复
    • 事后:故障复盘,定期review,反馈闭环,持续优化

    3.2 具体操作

  • 相关阅读:
    【JVM技术专题】深入分析内存布局及GC原理分析「中卷」
    Ubuntu彻底卸载删除cuda12.1
    springboot中的一些配置(如端口号的更换)
    【Effective_Objective-C_1熟悉Objective_C】
    java+springboot+ssm网上旧书回收二手书店销售管理系统
    Linux:CPU中断绑定----计算 SMP IRQ Affinity
    Java最新面试宝典 Spring面试题
    【SmartApi】v1.1.0版本发布
    MySQL之数据库编程(创建存储函数&&设置触发器)
    Mac m1配置flutter开发环境
  • 原文地址:https://blog.csdn.net/chenwiehuang/article/details/133764839