故障域隔离是什么
故障域是按影响范围划分的层级:进程、节点、机架、可用区、地域,每一层故障的影响面不同。隔离的目标是让单层故障不放大成全局故障——进程崩溃被资源限额与舱壁挡住、节点宕机由多副本与反亲和调度兜住、可用区断电由跨域副本与流量切换承接、地域级灾难由异地容灾兜底。关键是副本分布与调度策略必须一起评审,因为副本名义上跨区、实际可能因缺少反亲和规则而落在同一故障域。
基本信息
| 层级划分 | 进程 → 节点 → 机架 → 可用区 → 地域 |
|---|---|
| 隔离手段 | 资源限额、舱壁、副本、反亲和调度、跨域流量切换 |
| 核心指标 | 爆炸半径(单次故障影响的用户与业务范围) |
| 验证方式 | 故障注入:杀进程、下线节点、模拟单区不可用 |
| 常见盲点 | 共享组件(配置中心、注册中心、网关)本身就是跨域单点 |
典型使用场景
- 多可用区部署:单区断电时其余区域继续承接流量
- 数据库高可用:主从跨区部署并演练切换,明确切换时长与数据丢失窗口
- 限流与舱壁:把不同业务放在独立线程池与连接池,避免互相拖垮
- 批量任务隔离:离线任务使用独立集群或队列,不占用在线资源
- 灰度发布:按实例或地域分批放量,把故障限制在小范围
- 容灾演练:定期验证单区故障后的容量与数据一致性
层级与隔离手段
| 层级 | 典型故障 | 隔离手段 | 验证方式 |
|---|---|---|---|
| 进程 | 崩溃、内存泄漏、线程池耗尽 | 资源限额、舱壁、健康检查重启 | 注入异常与内存压测 |
| 节点 | 宕机、硬件故障 | 多副本、反亲和调度、优雅摘除 | 下线节点观察流量再平衡 |
| 机架/可用区 | 断电、网络中断 | 跨域副本、域内优先路由 | 模拟单区不可用演练 |
| 地域 | Region 级灾难 | 多地域容灾、数据复制 | 切换演练与回切验证 |
隔离检查清单
隔离检查清单
# 1 副本分布:副本数是否满足,反亲和规则是否真的生效
# 2 资源共享:配置中心、注册中心、网关、证书服务是否跨域单点
# 3 容量假设:单域故障后其余域能否承接全量流量(含数据库与缓存)
# 4 流量切换:切换由谁触发、耗时多久、是否需要人工确认
# 5 数据一致性:切换后写入是否会丢失或产生双写冲突
# 6 演练记录:每季度至少一次单域故障演练,记录实际恢复时长副本分布要与调度策略一起评审:只声明副本跨可用区而没有反亲和规则,实际上副本可能恰好落在同一故障域,容灾能力为零。
跨域流量要预留配额:单域故障后剩余域的流量会增加,若没有为这种场景预留带宽与连接数,故障会以另一种方式被放大。