Skip to content

如何执行版本偏好路由

HaojunRen edited this page May 31, 2024 · 2 revisions

本文档只适用于Discovery 6.15.0及以上版本的集成方式

版本偏好,即非蓝绿灰度发布场景下,路由到老的稳定版本的实例。其作用是防止多个网关上并行实施蓝绿灰度版本发布产生混乱,对处于非蓝绿灰度状态的服务,调用它的时候,只取它的老的稳定版本的实例;蓝绿灰度状态的服务,还是根据传递的Header版本号进行匹配

策略

版本偏好有两种策略:

  • 如果“version-prefer”值已配置,指定版本的偏好,即不管存在多少版本,直接路由到该版本实例
  • 如果“version-prefer”值未配置,版本列表排序策略的(取最老的稳定版本的实例)偏好,即不管存在多少版本,直接路由到最老的稳定版本的实例

两种策略的区别:

  • 指定版本策略,需要在配置文件里手工写死目标路由版本,适合版本无序的落地场景
  • 版本列表排序策略,对版本号进行排序,此解决方案的前置条件是版本号必须是规律的有次序,例如,以时间戳的方式。如果所有服务实例的版本号未设置,那么将转移到未设置版本号的实例上。适合版本有序的落地场景,不需要人工干预

配置项

通过在配置中心修改版本偏好值,可以达到动态版本偏好的效果

<?xml version="1.0" encoding="UTF-8"?>
<rule>
    <strategy-failover>
        <!-- 版本偏好,非蓝绿灰度发布场景下,路由到指定版本的实例 -->
        <version-prefer>{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"}</version-prefer>     
    </strategy-failover>
</rule>

需要通过如下开关开启该功能

# 启动和关闭版本偏好。缺失则默认为false
spring.application.strategy.version.prefer.enabled=true




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally