Skip to content

如何执行全链路高级蓝绿发布

HaojunRen edited this page May 31, 2024 · 2 revisions

网关控制的蓝绿发布策略

a为从前端传递到网关的参数,可以为Header、Parameter、Cookie其中一种

  • 当a等于1,从网关触发执行的链路为蓝路由,即a服务调用1.1版本,b服务调用1.1版本
  • 当a等于2,从网关触发执行的链路为绿路由,即a服务调用1.0版本,b服务调用1.0版本
  • 当a的值不命中,或者未传值,走兜底路由
  • 前端通过改变a的值,达到控制后端全链路调用路径的目的

分别对Spring Cloud Gateway和Zuul增加版本条件匹配蓝绿发布策略

<?xml version="1.0" encoding="UTF-8"?>
<rule>    
    <strategy-release>
        <conditions type="blue-green">
            <condition id="blue-condition" expression="#H['a'] == '1'" version-id="blue-route"/>
            <condition id="green-condition" expression="#H['a'] == '2'" version-id="green-route"/>
            <condition id="basic-condition" version-id="basic-route"/>
        </conditions>

        <routes>
            <route id="blue-route" type="version">{"discovery-guide-service-a":"1.1", "discovery-guide-service-b":"1.1"}</route>	
            <route id="green-route" type="version">{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"}</route>
            <route id="basic-route" type="version">{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"}</route>
        </routes>
    </strategy-release>
</rule>

① 对于Spring Cloud Gateway,它的Group为discovery-guide-group,Data Id为discovery-guide-gateway

② 对于Zuul,它的Group为discovery-guide-group,Data Id为discovery-guide-zuul

前端参数驱动

从前端(例如,Postman)选择Header、Parameter、Cookie中的其中一种,分别输入a=1或者a=2

执行调用,根据返回值,验证是否如预期设置

上述简单示例以版本条件匹配全链路蓝绿发布为例,更高级的发布功能,请参考http://nepxion.com/discovery全链路蓝绿灰度发布




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally