首页/开发/CI/CD 与发布速查/影子流量(Traffic Mirroring)
发布策略60 条

影子流量(Traffic Mirroring)

把生产流量复制(或按比例复制)给新版本,响应被丢弃、只用于验证:可以用真实流量压测新版本,而不影响用户结果。

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

影子流量是什么

把生产流量复制(或按比例复制)给新版本,响应被丢弃、只用于验证:用真实流量检验新版本的性能与异常路径,而不影响用户结果。Istio 里用 mirror 与 mirrorPercentage 配置。关键约束:写请求会在新版本上真实执行,必须先处理副作用隔离。

基本信息

复制对象入口请求按比例镜像
响应处理丢弃,不返回给用户
价值真实流量验证性能与异常路径
约束写操作会真实落库,需隔离或只镜像读流量
实现服务网格镜像(Istio 等)或网关层复制

典型使用场景

  • 重大重构:新实现先吃真实流量,观察差异再切主
  • 性能验证:用真实流量模型验证容量与尾延迟
  • 异常路径:真实参数组合覆盖测试难构造的场景
  • 缓存预热:新版本提前处理真实请求模式
  • 灰度前哨:正式放量前再跑一轮影子验证

实践要点

  • 读优先:先只镜像读接口,写路径另设计
  • 影子存储:写请求改写到影子库,避免污染生产数据
  • 容量预算:镜像流量叠加的负载提前评估
  • 对比观测:新旧版本响应差异收集与告警
  • 比例渐增:从小比例开始,观察系统开销
  • 回放留存:镜像请求留存样本,便于回归复现
  • 安全边界:镜像环境的数据访问按生产同级管控

Istio 镜像

Istio 镜像
http:
- route:
  - destination: {host: web, subset: v1}
  mirror: {host: web, subset: v2}
  mirrorPercentage: {value: 10.0}

与金丝雀对比

维度影子流量金丝雀发布
用户影响无,响应被丢弃有,真实用户
验证目标行为与性能对比转化与体验
主要风险写副作用与容量叠加回滚时效
镜像的写请求会在新版本上真实执行:先禁用写路径或指向影子存储,避免数据双写事故。
观测要对齐:新旧版本的日志与指标带上标记,才能对比差异。
镜像在网格侧异步执行:慢响应不拖累用户请求,但会占用新版本容量。

易错点

  • 镜像含写操作:订单、支付等副作用在新版本真实发生
  • 镜像流量叠加容量规划外的负载:新版本被压垮并牵连生产
  • 忘记给请求打标:对照指标混在一起,差异无从分析
  • 长期开镜不治理:影子环境成为遗忘角落,资源与安全双成本
  • 影子环境权限过宽:直连生产读库且账号权限过大,按最小权限收敛

数据来源与参考

  • Istio 文档《Traffic Mirroring》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌