分布式系统高可用全解析:从概念指标到战术方法,一文掌握!
📅 2026/7/21 21:12:07
👁️ 阅读次数
📝 编程学习
可用性与可用率
可用性被定义为“系统或组件在需要使用时可操作和可访问的程度”[IEEE610],衡量可用性的指标是可用率,计算公式为:(总运行时长 - 业务中断时长)/ 总运行时长 * 100%。常用的可用率中,高可用通常指 3 个 9,关键系统如金融和电信通常要求可用率为 5 个 9。
可用性与可靠性
在架构中,与可用性类似的概念还有`可靠性`,本书不做区分,因为这两个概念都有上述衡量指标和实现高可用高可靠的对应战术方法。区别在于,高可用更强调系统可用时长,而可靠性更强调故障率。
硬件与软件高可用
在互联网和物联网广泛使用之前,系统的高可用目标主要针对硬件,如服务器、磁盘、网络高可用,实现方式主要采用备份。软件系统借鉴了自动检测和故障隔离,但软件不会随使用时长、频率增加导致可用性降低,导致软件无法达成高可用的原因有系统外部和内部的。实现软件高可用比硬件复杂得多。
分布式系统高可用未实现的原因
包括软件工程缺少对高可用的关注、流量变化、外部干扰、技术团队过于乐观、系统实现过于复杂等。
高可用战术方法
思维导图总结了一系列高可用战术方法。分布式系统通常分为无状态服务和有状态服务,无状态服务高可用战术更为简单,还列出了高可用架构的三种架构风格。
高可用设计通用原则
包括负载均衡、备份、热部署、万一原则、KISS 原则、可靠基础设施等。
无状态与有状态服务高可用
分布式系统里节点服务包含`业务处理`和`数据`两部分,据此分为无状态和有状态节点。有状态服务高可用难度大,无状态服务高可用设计有端到端原则、服务发现等多种战术。
系统高可用验证
在分布系统中,验证系统高可用需模拟极端情况,称为捣乱。以模拟 CPU 使用率为例介绍了方法,关于如何捣乱参考本书第三章。
参考书籍
本节内容参考了《Handbookof Reliability Engineering》等多本书籍。
编程学习
技术分享
实战经验