-
Notifications
You must be signed in to change notification settings - Fork 1.4k
如何执行版本故障转移
HaojunRen edited this page May 31, 2024
·
2 revisions
本文档只适用于Discovery 6.15.0及以上版本的集成方式
版本故障转移,即无法找到相应版本的服务实例,转移到指定版本的服务实例。其作用是防止蓝绿灰度版本发布人为设置错误,或者对应版本的服务实例发生灾难性的全部下线,导致流量有损
故障转移有三种策略:
- 如果“version-failover”值已配置,指定版本的故障转移,即找不到实例的时候,直接路由到该版本实例
- 如果“version-failover”值未配置
- 开启“version.failover.stable.enabled”开关,版本列表排序策略的(取最老的稳定版本的实例)故障转移,即找不到实例的时候,直接路由到最老的稳定版本的实例
- 关闭“version.failover.stable.enabled”开关,负载均衡策略的故障转移,即找不到实例的时候,执行负载均衡策略
三种策略的区别:
- 负载均衡策略,找不到指定版本后,在其它的版本列表里进行负载均衡轮询调用
- 版本列表排序策略,对版本号进行排序,此解决方案的前置条件是版本号必须是规律的有次序,例如,以时间戳的方式。如果所有服务实例的版本号未设置,那么将转移到未设置版本号的实例上。适合版本有序的落地场景,不需要人工干预
- 指定版本策略,需要在配置文件里手工写死目标路由版本,适合版本无序的落地场景
通过在配置中心修改版本偏好值,可以达到动态版本故障转移的效果
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<strategy-failover>
<!-- 版本故障转移,无法找到相应版本的服务实例,路由到指定版本的实例 -->
<version-failover>{"discovery-guide-service-a":"1.1", "discovery-guide-service-b":"1.1"}</version-failover>
</strategy-failover>
</rule>
需要通过如下开关开启该功能
# 启动和关闭版本故障转移。缺失则默认为false
spring.application.strategy.version.failover.enabled=true
开启和关闭版本列表排序策略下取稳定版本的版本故障转移。缺失则默认为false
# spring.application.strategy.version.failover.stable.enabled=true
2017-2050 ©Nepxion Studio Apache License
- 如何对接Foundation基础平台实施收敛集成
- 如何对接DevOps运维平台实施流量管控
- 如何部署对接DevOps运维平台的控制台
- 如何对接DevOps运维平台执行半自动化蓝绿灰度发布
- 如何使用DevOps运维平台对接的公共接口
- 如何设计全链路智能编排高级蓝绿灰度发布界面
- 如何实现Windows10下GraalVM本地镜像化
- 蓝绿灰度发布
- 流量染色
- 隔离路由
- 故障转移
- 多活单元化
- 限流熔断降级权限
- 网关动态路由
- 可观测监控
- 如何操作配置中心
- 如何理解框架开关配置
- 如何理解规则策略里内容格式配置
- 如何操作网关和服务的蓝绿灰度发布规则策略配置
- 如何操作网关动态路由规则策略配置
- 如何操作Sentinel规则策略配置
- 如何实施规则策略配置和业务配置在配置中心的合并和分离
- 如何理解自动扫描目录
- 如何自定义流量管控
- 如何自定义实现组合式的防护
- 如何自定义高级配置订阅功能
- 如何自定义订阅框架事件
- 如何自定义解决业务自身跨线程上下文切换的问题
- 如何自定义重用框架内置的Swagger模块
- 如何自定义Header全链路传递
- 如何遵循Nepxion Discovery网关标准实现对其它网关全链路流量管控的二次开发
- 如何遵循Nepxion Discovery服务标准实现对消息队列等其它中间件全链路流量管控的二次开发