首页/开发/CI/CD 与发布速查/DNS 权重切换与发布
发布策略60 条

DNS 权重切换与发布

用带权重的 DNS 记录在环境或区域间渐进切换流量:适合粗粒度切换与区域级蓝绿,生效速度受客户端与解析器缓存影响。

CI/CD 与发布速查开发更新于 2026-10-13

DNS 权重切换是什么

用带权重的 DNS 记录把流量在环境或区域间渐进切换:权重从 0 到 100 逐步放大新环境,出现异常把权重改回旧记录。它的粒度是环境或区域级的粗切,生效速度受 TTL 与递归解析器缓存影响,切换和回退都存在分钟级长尾,适合与网关层请求级切换组合使用。

基本信息

粒度环境或区域级,非请求级
生效速度受 TTL 与解析缓存影响
回退权重改回旧记录
配合与网关或负载均衡层细粒度切换组合
前置提前把 TTL 调低(如 60s)
记录切换动作与时间点写进发布记录

权重推进节奏

权重推进节奏
新环境权重:10 → 50 → 100  # 每档观察后再放大
旧环境权重反向递减  # 两边权重之和保持 100
提前把 TTL 调低(如 60s)  # 缩短切换与回退生效时间
切换后验证:从多个地区解析  # 单点 dig 结果不代表全局

典型使用场景

  • 区域级蓝绿:把新区域集群按权重接入流量
  • 环境迁移:迁移完成后逐步把生产流量切到新环境
  • 服务商切换:从旧 CDN 或云厂商向新厂商渐进迁移
  • 容量验证:临时把部分流量导向新扩容区域验证承载
  • 灾备切换:主区域异常时把权重切到备用区域
  • 粗粒度灰度:先按区域放量,再在网关层做请求级细切

关键因素与影响

因素影响应对
TTL 值决定缓存过期速度切换前调低,稳定后调回
解析器缓存部分解析器行为不严格回退预留更长观察窗
客户端长连接存量连接绕过 DNS 切换应用层切换兜底
权重步长步长过大放大风险从小权重开始
监控口径按权重预估流量分布与实测对比校准
DNS 切换不保证平滑:解析缓存导致残余流量按 TTL 长尾衰减,回滚同理,关键系统要有应用层兜底。
长期保持低 TTL:解析压力与查询成本上升,切换完成后恢复常规值。
别期望 DNS 做秒级回滚:实际收敛可能持续数分钟到更久。

易错点

  • 期望 DNS 做秒级回滚:实际收敛可能持续数分钟到更久。
  • 长期保持低 TTL:解析压力与查询成本上升。
  • 不调低 TTL 就切换:缓存把新旧流量纠缠在一起。
  • 只在一个地区验证:其它地区解析结果不同,切换状态误判。
  • 忽略长连接流量:切换后旧环境仍有存量连接。

数据来源与参考

  • AWS Route 53 文档《Weighted routing》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌