Skip to content

灰度发布使用指南 ✨

功能介绍 💡

WARNING

灰度发布(Gray Release)是一种渐进式的发布策略,通过向部分用户推送新版本,实现:

  • 🎯 风险可控的版本发布
  • 🔍 新功能的效果验证
  • 📊 用户反馈的收集
  • 🛡️ 系统稳定性保障

应用场景

  • ✓ 新功能试点发布
  • ✓ 版本平滑过渡
  • ✓ A/B测试实验
  • ✓ 负载能力评估

配置说明 ⚙️

基础配置参数

参数名类型必填默认值说明
enabledbooleanfalse是否启用灰度发布
itemsarray-灰度规则列表

灰度规则配置 (items)

参数名类型必填说明
urlsarrayURL规则列表,用于区分不同系统的灰度规则
versionstring灰度版本号
rulesarray具体灰度规则配置

规则类型说明 (rules)

类型说明示例值
AUTHORIZATION基于令牌判断"token-xxx"
IP基于IP地址判断"192.168.1.*"
MERCHANT基于商户判断"merchant-001"
USER基于用户ID判断"user-123"
HEADER基于请求头判断"custom-header"

TIP

URL匹配规则详见 URL匹配规则说明

配置示例 📝

基础配置

yaml
wueasy:
  gateway:
    filter:
      gray:
        enabled: true
        items:
        - urls: /**
          version: gray-2
          rules:
          - type: IP
            data: 127.0.0.1

多规则配置

yaml
wueasy:
  gateway:
    filter:
      gray:
        enabled: true
        items:
        - urls: /api/**
          version: gray-2
          rules:
          - type: IP
            data: 192.168.1.*
          - type: USER
            data: VIP.*
        - urls: /admin/**
          version: gray-1
          rules:
          - type: HEADER
            field-name: x-gray-flag
            data: test

微服务配置 🔧

Nacos配置

yaml
spring:
  cloud: 
    nacos: 
      discovery: 
        metadata:
          version: gray-2  # 指定灰度版本号

版本说明 ⚠️

CAUTION

版本号规则:

  • gray- 开头的版本号 → 灰度服务
  • 空版本号或非gray开头 → 正常服务
  • 未匹配到灰度服务 → 自动路由到正常服务

最佳实践 💡

  1. 灰度策略

    • 从小范围用户开始
    • 逐步扩大灰度比例
    • 设置合理的回滚机制
  2. 监控建议

    • 监控灰度服务性能
    • 跟踪用户反馈
    • 对比新旧版本数据

常见问题 ❓

灰度规则不生效

  • 检查enabled是否开启
  • 验证version配置是否正确
  • 确认rules匹配规则是否准确

服务路由异常

  • 检查Nacos配置是否正确
  • 确认version命名是否规范
  • 验证服务注册状态