高可用架构 学习笔记
一、高可用架构概述
1.1 什么是高可用?
定义:High Availability Architecture(高可用架构),是一种系统设计方法,目标是确保系统在大部分时间都能正常运行,即使在出现硬件故障、系统升级或其他潜在问题时,也能保持运行。
核心目标:
code
高可用目标:
"没日没夜都能正常运行"
├── 减少停机时间(计划内 + 意外)
├── 应对硬件故障
├── 应对系统升级
└── 应对其他潜在问题1.2 高可用度量指标
可用性等级:
| 可用性等级 | 可用性百分比 | 年停机时间 | 典型应用场景 |
|---|---|---|---|
| 1个9 | 90% | 36.5天 | 个人博客 |
| 2个9 | 99% | 3.65天 | 内部系统 |
| 3个9 | 99.9% | 8.76小时 | Web服务 |
| 4个9 | 99.99% | 52.6分钟 | 企业应用 |
| 5个9 | 99.999% | 5.26分钟 | 金融系统 |
| 6个9 | 99.9999% | 31.5秒 | 核心基础设施 |
计算公式:
javascript
// 可用性计算
const availabilityCalculation = {
formula: '可用性 = (总时间 - 停机时间) / 总时间 × 100%',
example: {
totalTime: 365 * 24 * 60, // 一年总分钟数
downtime: 8.76 * 60, // 停机时间(分钟)
availability: ((365 * 24 * 60 - 8.76 * 60) / (365 * 24 * 60) * 100).toFixed(3)
// 结果:99.9%
},
// 不同等级的年停机时间
levels: {
'99%': 3.65 * 24 * 60, // 3.65天
'99.9%': 8.76 * 60, // 8.76小时
'99.99%': 52.6, // 52.6分钟
'99.999%': 5.26, // 5.26分钟
'99.9999%': 0.526 // 31.5秒
}
}1.3 高可用三大保障场景
code
高可用三大保障场景:
┌─────────────────────────────────────────┐
│ 1. 本地高可用 │
│ ├── 消除系统故障、硬件故障 │
│ └── 生产环境内部故障 │
├─────────────────────────────────────────┤
│ 2. 业务逻辑保护 │
│ ├── 人为失误 │
│ └── 软件错误 │
├─────────────────────────────────────────┤
│ 3. 容灾多活 │
│ ├── 区域性灾难 │
│ └── 天然灾害 │
└─────────────────────────────────────────┘