DNS 权重切换是什么
用带权重的 DNS 记录把流量在环境或区域间渐进切换:权重从 0 到 100 逐步放大新环境,出现异常把权重改回旧记录。它的粒度是环境或区域级的粗切,生效速度受 TTL 与递归解析器缓存影响,切换和回退都存在分钟级长尾,适合与网关层请求级切换组合使用。
基本信息
| 粒度 | 环境或区域级,非请求级 |
|---|---|
| 生效速度 | 受 TTL 与解析缓存影响 |
| 回退 | 权重改回旧记录 |
| 配合 | 与网关或负载均衡层细粒度切换组合 |
| 前置 | 提前把 TTL 调低(如 60s) |
| 记录 | 切换动作与时间点写进发布记录 |
权重推进节奏
权重推进节奏
新环境权重:10 → 50 → 100 # 每档观察后再放大
旧环境权重反向递减 # 两边权重之和保持 100
提前把 TTL 调低(如 60s) # 缩短切换与回退生效时间
切换后验证:从多个地区解析 # 单点 dig 结果不代表全局典型使用场景
- 区域级蓝绿:把新区域集群按权重接入流量
- 环境迁移:迁移完成后逐步把生产流量切到新环境
- 服务商切换:从旧 CDN 或云厂商向新厂商渐进迁移
- 容量验证:临时把部分流量导向新扩容区域验证承载
- 灾备切换:主区域异常时把权重切到备用区域
- 粗粒度灰度:先按区域放量,再在网关层做请求级细切
关键因素与影响
| 因素 | 影响 | 应对 |
|---|---|---|
| TTL 值 | 决定缓存过期速度 | 切换前调低,稳定后调回 |
| 解析器缓存 | 部分解析器行为不严格 | 回退预留更长观察窗 |
| 客户端长连接 | 存量连接绕过 DNS 切换 | 应用层切换兜底 |
| 权重步长 | 步长过大放大风险 | 从小权重开始 |
| 监控口径 | 按权重预估流量分布 | 与实测对比校准 |
DNS 切换不保证平滑:解析缓存导致残余流量按 TTL 长尾衰减,回滚同理,关键系统要有应用层兜底。
长期保持低 TTL:解析压力与查询成本上升,切换完成后恢复常规值。
别期望 DNS 做秒级回滚:实际收敛可能持续数分钟到更久。