这里以一个saas平台为例子
1.灰度启用开关
通过容器注入变量:CANARY_APOLLO_NAMESPACE(灰度namespace)
有值时表示为灰度模式,设置全局常量CANARY_SWITCH(灰度启用开关)值为ON
2.配置补充
在Apollo增加灰度namespace和灰度平台配置,同时更新配置文件
在灰度namespace中设置灰度模式需要替换的配置(当前只设置了队列名和汇付支付回调地址)
3.用户同步请求
Web服务器/反向代理层或者其他层通过平台token转到灰度服务器
4.配置替换
在获取到应用Apollo主配置后,检测如果环境变量中存在灰度namespace参数
则获取灰度配置,并且将灰度配置的数据替换主配置相同KEY(不存在则增加)的数据
5.支付请求涉及到的异步回调
在灰度namespace中设置同主队列KEY的灰度回调地址
例如汇付支付时传递的异步回调地址:
Apollo主配置:HUIFU_PAY_BACK=https://waimai.3cfood.com/easypay/v1/pay/huifuBack
Apollo灰度配置:HUIFU_PAY_BACK=https://canary-pro.com/easypay/v1/pay/huifuBack
6.定时任务
获取灰度平台配置,如果当前不是灰度模式则过滤此平台集合,反之只查询这些平台
7.例图: