高可用与容错
高可用(High Availability, HA)是指系统在长时间内提供服务的能力,通常用可用性(如 99.9%)表示。容错(Fault Tolerance)是指系统在部分组件故障时继续提供服务的能力。
可用性指标
可用性等级
99.9%(8.76 小时/年)、99.99%(52.56 分钟/年)、99.999%(5.26 分钟/年)。
MTBF 和 MTTR
MTBF(平均故障间隔时间)、MTTR(平均修复时间)。
可用性 = MTBF / (MTBF + MTTR)。
冗余设计
服务冗余
部署多个服务实例,负载均衡器将请求分发到健康的服务实例。
数据冗余
主从复制、多主复制、数据一致性(强一致性、最终一致性)。
硬件冗余
磁盘 RAID、双电源、双网卡、双交换机。
故障检测
健康检查
Liveness(存活检查)、Readiness(就绪检查)。
健康检查方式:HTTP 端点、TCP 端口、命令。
故障判定
连续 N 次健康检查失败后,判定服务故障。
故障恢复
自动重启
服务崩溃时自动重启,退避策略避免重启循环。
故障转移
主节点故障时,从节点提升为主节点。
限流降级
服务过载时限流保护,依赖服务故障时降级。
熔断器
熔断器模式
关闭(Closed)、开启(Open)、半开(Half-Open)三种状态。
连续 N 次失败后,熔断器开启,直接返回失败。
超时与重试
超时
超时是等待响应的最长时间,应该根据 P99 延迟设置。
重试
重试策略:立即重试、固定延迟重试、指数退避重试。
只重试幂等操作。