是的,Nacos 支持灰度发布功能。通过阿里云微服务引擎(MSE)中的 Nacos 引擎,用户可以实现配置的灰度发布,从而降低配置变更带来的风险。
灰度发布支持的功能
-
灰度发布类型:
- 基于 IP 地址的灰度发布:通过选择特定的 IP 地址列表,将新版本的配置推送到指定的机器上进行验证。
- 基于应用标签的灰度发布:通过为应用节点设置标签(key-value 格式),针对特定标签的节点进行灰度发布。
-
灰度发布流程:
- 在配置正式发布前,先对部分节点进行小范围的灰度验证。
- 如果验证通过,则逐步扩大灰度范围,直至全量发布。
- 如果验证失败,可以停止灰度或回滚到之前的版本。
-
多灰度版本并行:
- 对于同一个配置,可以同时存在多个灰度版本(包括基于 IP 的灰度版本和基于标签的灰度版本)。
- 配置查询和推送的优先级规则为:基于 IP 的灰度版本 > 基于标签的灰度版本 > 正式版本。
- 基于标签的灰度版本支持设置优先级(
priority
字段),优先级越高,匹配优先级越高。
-
适用场景:
- 基于 IP 的灰度发布:适用于小型业务系统,能够快速降低配置推送的风险。
- 基于标签的灰度发布:适用于复杂业务场景,尤其是需要根据业务维度(如应用名、流量入口等)进行精细化灰度控制的场景。
使用限制
- 版本要求:
- 基于 IP 的灰度发布适用于 MSE Nacos 开发版和专业版。
- 基于标签的灰度发布需要 MSE Nacos 版本在 2.2.3.3 及以上,并且客户端版本需要升级到 2.3.2 及以上。
- 最大灰度版本数量:默认最多支持 5 个标签灰度版本,超过上限时灰度发布将被拦截。
操作步骤
基于 IP 地址的灰度发布
- 登录 MSE 注册配置中心管理控制台。
- 选择目标实例,并进入配置管理页面。
- 编辑目标配置,在发布方式中选择“基于 IP 灰度发布”。
- 输入需要灰度推送的 IP 地址列表。
- 修改配置后,点击“发布灰度”按钮完成灰度发布。
基于应用标签的灰度发布
- 在客户端为应用节点设置标签(支持 properties、JVM 参数和环境变量三种方式)。
- 登录 MSE 控制台,编辑目标配置,在发布方式中选择“基于标签灰度发布”。
- 设置灰度规则(如
key=value1,value2
)。
- 修改配置后,点击“发布灰度”按钮完成灰度发布。
优势对比
相比于自建 Nacos,MSE Nacos 提供了更强大的灰度发布能力,包括: - 更高的可用性:支持多节点容灾和多可用区容灾。 - 更强的安全性:支持 RAM 认证鉴权、ACL 白名单访问控制和 TLS 传输加密。 - 更丰富的功能:支持配置标签灰度、推空保护、流量防护等高级功能。
如果您需要进一步了解如何操作或配置灰度发布,可以通过调用 UpdateNacosGrayConfig
API 进行更新和管理。