解析级故障转移是什么
解析级故障转移是给域名配一组主备地址,由解析服务商做健康探测,主地址异常时把解析切换到备用地址。它属于兜底层而非第一道防线:切换生效时间取决于 TTL 与各级递归解析器的缓存,通常比负载均衡摘除后端慢,但能覆盖「整个可用区或整个入口挂掉」这类负载均衡自身无法处理的故障。前提是备用地址平时就必须是真实可用的。
基本信息
| 能力 | 一组主备地址 + 健康探测,异常时自动切换解析 |
|---|---|
| 生效时间 | 受 TTL 与递归缓存影响,秒级到分钟级不等 |
| 探测方式 | 解析商从多个探测点发起 HTTP/TCP/Ping 探测 |
| 前提条件 | 备用地址长期可用且容量能承接全量流量 |
| 配套设置 | TTL 建议调低(如 60~300 秒),权衡查询量 |
| 定位 | 与负载均衡健康检查互补的最后一层兜底 |
典型使用场景
- 多可用区容灾:主入口所在可用区整体故障,解析切到异地入口
- 跨云兜底:主云厂商入口不可用时切到备用云厂商地址
- 迁移过渡:域名同时指向新旧入口,按探测结果逐步切量
- 无负载均衡的简单架构,用解析级探测补上兜底
- 演练验证:主动模拟主地址故障,检验切换真实生效时间
三层故障转移的分工
| 层级 | 作用范围 | 生效速度 | 局限 |
|---|---|---|---|
| 负载均衡健康检查 | 单个后端成员 | 秒级 | 入口本身故障时无能为力 |
| 解析级故障转移 | 整个入口地址 | TTL 与缓存决定,通常更慢 | 缓存不遵守 TTL 时延迟明显 |
| 客户端重试与冷备 | 单次请求 | 与应用实现相关 | 需应用侧配合,覆盖不到全局 |
验证切换是否生效
验证切换是否生效
dig +short service.example.com # 默认解析器看到的地址
dig +short service.example.com @1.1.1.1 # 公共解析器视角
dig +short service.example.com @8.8.8.8 # 换一个再看,判断缓存差异
# 连续观察,记录从主地址变成备用地址用了多久
while true; do date +%T; dig +short service.example.com @1.1.1.1; sleep 20; done切换期间新旧地址会并存一段时间:缓存未过期的客户端继续访问主地址,解析器已刷新的访问备用地址。因此备用入口必须能独立承接全部流量,不能是缩水配置,否则切换成功但服务照样过载。
不要把同一域名同时用于两级故障域(既是解析级主备、又期望它做细粒度后端摘除)。职责混在一起时,一个探测抖动会同时触发解析切换和大面积流量迁移。