发布日志
版本更新:
升级Spring Boot到2.1.11.RELEASE
升级Sentinel到1.7.1
功能更新:
支持全链路灰度权重和灰度匹配组合式策略,配置如下:
{"discovery-guide-service-a":"1.0", "discovery-guide-service-b":"1.0"} {"discovery-guide-service-a":"1.1", "discovery-guide-service-b":"1.1"}
支持版本匹配、区域匹配、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源创计划”,欢迎正在阅读的你也加入,一起分享。