灰度路由(金丝雀发布)

对于企业级应用而言,应用运维必须实现可灰度的能力。Spring Cloud SOFA 提供了灰度路由的能力,可以在应用发布时实现金丝雀发布。SOFA 的灰度路由可支持 SOFA 注册中心和开源的 Nacos 注册中心。

配置灰度路由

如果您的应用接入了 SOFA 应用管理服务,您可在应用发布时直接使用灰度功能。

如果您没有接入 SOFA 应用管理服务,同时也想使用 SOFA 的灰度路由功能,您可以进行以下操作:

  1. 在应用发布阶段,您需要为应用的运行环境中注入环境变量来进行灰度标识。

    环境变量名为:CAFE_ENV_APP_REVISION,值可以自定义。例如配置为应用版本号,该变量需要能明确标记出灰度的节点。

  2. 使用 SOFA 微服务控制台,在灰度路由功能中选择需要灰度的应用,新建或修改灰度规则,填写灰度标记和流量百分比。

    灰度标记即CAFE_ENV_APP_REVISION对应的值,百分比可按需配置。

  3. 如果需要针对某些请求进行灰度,实现 AB Test 功能,可以在服务中填写具体的路径进行精确筛选,还可以根据请求信息进行筛选。支持通过请求头、Cookie、请求参数进行精确筛选。

  4. 通过调整灰度路由百分比,将流量切换到新的版本。

关闭灰度路由

如果需要关闭灰度路由,您可以在 SOFA 微服务控制台或 SOFA 应用管理服务(取决于您通过什么控制台使用灰度路由)找到相应的灰度规则,删除或禁用规则。

如果不希望应用使用 SOFA 的灰度路由功能,您可以在application.properties文件中配置spring.cloud.sofa.router.gray.enabled值为false,应用将会彻底禁用 SOFA 灰度路由。

spring.cloud.sofa.router.gray.enabled=false