Skip to content

Releases: Nepxion/Discovery

4.13.13(JAN 12, 2020)

12 Jan 05:11
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.13 发布

3.13.13(JAN 12, 2020)

12 Jan 05:11
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.13 发布

5.5.11(JAN 6, 2020)

06 Jan 08:25
Compare
Choose a tag to compare

Nepxion Discovery 5.5.11 发布

发布日志

版本更新:

  • 升级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();
}
  • 重构自定义条件命中的路由,支持Spel表达式进行自定义规则,支持所有标准的Spel表达式,包括==,!=,>,>=,<,<=,&&,||等,由于规则保存在XML文件里,对于特殊符号需要转义
<?xml version="1.0" encoding="UTF-8"?>
<rule>
    <strategy>
        <version>{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"}</version>
    </strategy>

    <strategy-customization>
        <conditions>
            <condition id="condition1" header="#H['a'] == '1'" version-id="version-route2"/>
            <condition id="condition2" header="#H['a'] == '1' &amp;&amp; #H['b'] == '2'" version-id="version-route1"/>
        </conditions>

        <routes>
            <route id="version-route1" type="version">{"discovery-guide-service-a":"1.1", "discovery-guide-service-b":"1.1"}</route>
            <route id="version-route2" type="version">{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.1"}</route>
        </routes>
    </strategy-customization>
</rule>
  • 支持同时多个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.11,支持Finchley版
  • Nepxion Discovery 3.13.11,支持Edgware版

4.13.11(JAN 6, 2020)

06 Jan 08:22
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.11 发布

3.13.11(JAN 6, 2020)

06 Jan 08:19
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.11 发布

5.5.8(DEC 22, 2019)

22 Dec 13:07
Compare
Choose a tag to compare

Nepxion Discovery 5.5.8 发布

发布日志

版本更新:

  • 升级Apollo到1.5.1
  • 升级Opentracing Spring Cloud到0.3.12
  • 升级Jaeger到1.1.0

功能更新:

  • 修复Zuul忽略外界的Header的Bug
  • 优化git-commit-id-plugin用法,组合定义灰度版本,参考如下
# 使用Git信息中的字段单个或者多个组合来作为服务版本号。缺失则默认为{git.commit.id.abbrev}-{git.commit.time}
# spring.application.git.version.key={git.commit.id.abbrev}-{git.commit.time}
# spring.application.git.version.key={git.build.version}-{git.commit.time}
  • 自定义Opentracing字段输出,包括灰度规则和Sentinel规则埋点是否输出(当规则数据比较大的时候,对整体埋点数据量可能会有一些影响),Sentinel对于目标AOP方法的参数是否输出(参数中有敏感信息,就不应该输出到调用链中)
    对灰度规则的自动埋点,默认处于关闭状态
# 启动和关闭调用链的灰度规则策略信息在Opentracing中的输出。缺失则默认为false
# spring.application.strategy.trace.opentracing.rule.output.enabled=false

对Sentinel自动埋点,有如下两个参数默认处于关闭状态,但因为Sentinel原生并非Spring技术来实现的,所以开关只能通过System.setProperty或者通过启动参数进行设置

# 启动和关闭调用链的Sentinel规则信息在Opentracing中的输出缺失则默认为false
spring.application.strategy.trace.opentracing.sentinel.rule.output.enabled=true
# 启动和关闭调用链的Sentinel参数信息在Opentracing中的输出参数中有敏感信息就不应该输出到调用链中缺失则默认为false
spring.application.strategy.trace.opentracing.sentinel.args.output.enabled=true

源码主页

https://github.com/Nepxion/Discovery

指南主页

https://github.com/Nepxion/DiscoveryGuide

文档主页

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

其它版本

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

  • Nepxion Discovery 4.13.8,支持Finchley版
  • Nepxion Discovery 3.13.8,支持Edgware版

4.13.8(DEC 22, 2019)

22 Dec 13:06
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.8 发布

3.13.8(DEC 22, 2019)

22 Dec 13:05
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.8 发布

5.5.5(DEC 1, 2019)

01 Dec 08:19
Compare
Choose a tag to compare

Nepxion Discovery 5.5.5 发布

发布日志

性能提升:

  • 去掉灰度Actuator接口,提升20%-30%的TPS

功能更新:

  • 增加Sentinel在Opentracing + Jaeger上的埋点输出,使用方式,引入下面的包即可:
<dependency>
    <groupId>com.nepxion</groupId>
    <artifactId>discovery-plugin-strategy-sentinel-starter-opentracing</artifactId>
    <version>${discovery.version}</version>
</dependency>

感谢:

  • 感谢@zhangshun同学贡献Sentinel Opentracing相关代码

源码主页

https://github.com/Nepxion/Discovery

指南主页

https://github.com/Nepxion/DiscoveryGuide

文档主页

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

其它版本

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

  • Nepxion Discovery 4.13.5,支持Finchley版
  • Nepxion Discovery 3.13.5,支持Edgware版

4.13.5(DEC 1, 2019)

01 Dec 08:16
Compare
Choose a tag to compare

见 Nepxion Discovery 5.5.5 发布