-
Notifications
You must be signed in to change notification settings - Fork 1.4k
如何设置全链路蓝绿灰度发布由前端或者网关来执行
HaojunRen edited this page May 31, 2024
·
5 revisions
全链路蓝绿灰度方式,包括如下两种
- 通过前端发送路由Header(例如:n-d-version)到网关和全链路服务上,由前端驱动全链路蓝绿灰度
- 通过订阅配置中心规则策略,由网关发送路由Header(例如:n-d-version)到全链路服务上,由后端(网关)驱动全链路蓝绿灰度
- Spring Cloud Gateway的开关
# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.gateway.header.priority=false
# 当以网关设置为优先的时候,网关未配置Header,而外界配置了Header,仍旧忽略外界的Header。缺失则默认为true
spring.application.strategy.gateway.original.header.ignored=true
- Zuul网关的开关
# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.zuul.header.priority=false
# 当以网关设置为优先的时候,网关未配置Header,而外界配置了Header,仍旧忽略外界的Header。缺失则默认为true
spring.application.strategy.zuul.original.header.ignored=true
同理,在服务侧也有一个对应的开关
# 当外界传值Header的时候,服务也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以服务设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.service.header.priority=true
- 当如下配置为true的时候,表示当前端传入路由Header,网关上也设置了同样的规则策略,前端传入失效。这样,蓝绿灰度的权限就控制在网关上,避免前端来控制后端的蓝绿灰度
spring.application.strategy.gateway.header.priority=true
spring.application.strategy.zuul.header.priority=true
- 当上述配置为false的时候,逻辑刚好相反过来
- 在上述配置为true的情况下,可能由于运维人员失误等情况,未在网关上设置规则策略,同时前端也传入了路由Header。那么,您可以通过下面开关,控制是否也令前端传入失效
spring.application.strategy.gateway.original.header.ignored=true
spring.application.strategy.zuul.original.header.ignored=true
2017-2050 ©Nepxion Studio Apache License
- 如何对接Foundation基础平台实施收敛集成
- 如何对接DevOps运维平台实施流量管控
- 如何部署对接DevOps运维平台的控制台
- 如何对接DevOps运维平台执行半自动化蓝绿灰度发布
- 如何使用DevOps运维平台对接的公共接口
- 如何设计全链路智能编排高级蓝绿灰度发布界面
- 如何实现Windows10下GraalVM本地镜像化
- 蓝绿灰度发布
- 流量染色
- 隔离路由
- 故障转移
- 多活单元化
- 限流熔断降级权限
- 网关动态路由
- 可观测监控
- 如何操作配置中心
- 如何理解框架开关配置
- 如何理解规则策略里内容格式配置
- 如何操作网关和服务的蓝绿灰度发布规则策略配置
- 如何操作网关动态路由规则策略配置
- 如何操作Sentinel规则策略配置
- 如何实施规则策略配置和业务配置在配置中心的合并和分离
- 如何理解自动扫描目录
- 如何自定义流量管控
- 如何自定义实现组合式的防护
- 如何自定义高级配置订阅功能
- 如何自定义订阅框架事件
- 如何自定义解决业务自身跨线程上下文切换的问题
- 如何自定义重用框架内置的Swagger模块
- 如何自定义Header全链路传递
- 如何遵循Nepxion Discovery网关标准实现对其它网关全链路流量管控的二次开发
- 如何遵循Nepxion Discovery服务标准实现对消息队列等其它中间件全链路流量管控的二次开发