任何系统都可能出错。高可用架构的目标是让故障不影响服务连续性。故障转移与容灾设计是核心环节。
1. 高可用的定义
系统在指定时间内保持可用的能力。常用指标:
- 可用性(Availability) = 正常运行时间 / 总时间。
- 例如:99.9%(年宕机 < 9 小时),99.99%(年宕机 < 1 小时)。
2. 故障转移(Failover)机制
- 主动式:系统检测到异常后自动切换备份节点。
- 被动式:人工触发或依赖外部监控工具。
常见模式:
- 主备模式(Active-Standby) :主节点工作,备节点实时同步状态。
- 主主模式(Active-Active) :多节点共同处理流量,互为备份。
- DNS 级切换:通过域名解析实现跨地域流量转移。
3. 容灾层次
- 同机房容灾:多实例部署 + 负载均衡。
- 同城双活:两个机房实时同步数据,双向处理流量。
- 异地多活:跨城市部署,防止区域性灾难。
4. 数据层容灾
- 主从复制:异步或半同步复制,保障数据安全。
- 多活复制:两地可写,但需解决冲突。
- 备份策略:定期冷备 + 异地存储。
5. 实践要点
- 故障检测周期要短。
- 切换过程必须幂等。
- 监控与演练是关键,定期做故障注入测试(Chaos Engineering)。
结论:容灾不是为了应对灾难,而是保证“灾难一定会发生时,系统依然可用”。