Nepxion Discovery 5.5.10 发布

原创
01/05 11:21
阅读数 0

发布日志

版本更新:

  • 升级Spring Boot到2.1.11.RELEASE

  • 升级Sentinel到1.7.1

功能更新:

  • 支持全链路灰度权重和灰度匹配组合式策略,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<rule>
    <strategy-customization>
        <weights>
            <weight id="1" version-id="version-route1=90;version-route2=10"/>
        </weights>

        <routes>
            <route id="version-route1" type="version">{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"}</route>
            <route id="version-route2" type="version">{"discovery-guide-service-a":"1.1", "discovery-guide-service-b":"1.1"}</route>
        </routes>
    </strategy-customization>
</rule>

支持版本匹配、区域匹配、IP地址和端口匹配。以版本匹配为例,该组合式策略表示:

  • a服务1.0版本向网关提供90%的流量,1.1版本向网关提供10%的流量

  • a服务1.0版本只能访问b服务1.0版本,1.1版本只能访问b服务1.1版本

该功能的意义是,网关随机权重调用服务,而服务链路按照版本匹配方式调用

支持Spring Matcher的通配符匹配,例如,版本前后缀,区域前后缀,IP段,端口前后缀等通配符匹配。以IP段和端口匹配为例:

<?xml version="1.0" encoding="UTF-8"?>
<rule>
    <strategy-customization>
        <weights>
            <weight id="1" address-id="address-route1=90;address-route2=10"/>
        </weights>

        <routes>
            <route id="address-route1" type="address">{"discovery-guide-service-a":"192.168.0.*", "discovery-guide-service-b":"80*"}</route>
            <route id="address-route2" type="address">{"discovery-guide-service-a":"192.168.*", "discovery-guide-service-b":"707?"}</route>
        </routes>
    </strategy-customization>
</rule>
  • 如果全链路灰度权重和灰度匹配组合式策略仍旧不能满足需求,可以自定义更复杂的场景,示例如下:

public String getRouteVersion() {
    List<Pair<String, Double>> weightList = new ArrayList<Pair<String, Double>>();
    weightList.add(new ImmutablePair<String, Double>(aRouteVersion, 30D));
    weightList.add(new ImmutablePair<String, Double>(bRouteVersion, 70D));
    MapWeightRandom<String, Double> weightRandom = new MapWeightRandom<String, Double>(weightList);

    return weightRandom.random();
}
  • 支持同时多个DiscoveryEnabledStrategy的联合判断

  • 支持网关独立部署和非独立部署两种场景下,动态调度子环境的能力。网关独立部署场景下,通过Http Header传递n-d-env=xxx在DefaultEnvironmentDiscoveryEnabledStrategy来动态调度子环境的能力;网关非独立部署场景下,网关需要加上env的元数据,通过Nginx来动态调度子环境的能力

  • 修复子环境过滤为判断元数据中的env为空的Bug

  • 增加子环境调度策略的全链路输出和Opentracing输出

源码主页

https://github.com/Nepxion/Discovery

指南主页

https://github.com/Nepxion/DiscoveryGuide

文档主页

https://gitee.com/Nepxion/Docs/tree/master/web-doc

其它版本

同时发布的版本,还包括:

  • Nepxion Discovery 4.13.10,支持Finchley版

  • Nepxion Discovery 3.13.10,支持Edgware版

请联系我

微信、公众号和文档

本文分享自微信公众号 - Nepxion开源社区(iMicroService)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部