Skip to content

Releases: Nepxion/Discovery

3.10.3(JUL 16, 2019)

16 Jul 11:37
Compare
Choose a tag to compare

见 Nepxion Discovery 5.2.3 发布

5.2.1(JUL 7, 2019)

07 Jul 11:12
Compare
Choose a tag to compare

Nepxion Discovery 5.2.1 发布

  1. 实现线上原生的Spring cloud服务和用了Discovery框架的服务混在一起的情况下,通过网关可以实现灰度发布
  2. 优化核心参数配置策略,对于group,version,region未配置的情况下,统一默认处理为default值,并通过metadata注册到注册中心
  3. 修改负载均衡策略,对于group,version,region未配置的情况下,去执行灰度路由的时候,需要在Header上传递n-d-group=default或者n-d-version=default或者n-d-region=default
  4. 增加配置项
# 启动和关闭调用链。缺失则默认为false
spring.application.strategy.trace.enabled=true
  1. 修改配置项
# 启动和关闭Header传递的日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.intercept.log.print=true
改为
# 启动和关闭Header传递的Debug日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.rest.intercept.debug.enabled=true

# 启动和关闭调用链的日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.trace.log.print=true
改为
# 启动和关闭调用链的Debug日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.trace.debug.enabled=true

4.10.1(JUL 7, 2019)

07 Jul 11:11
Compare
Choose a tag to compare

见 Nepxion Discovery 5.2.1 发布

3.10.1(JUL 7, 2019)

07 Jul 11:09
Compare
Choose a tag to compare

见 Nepxion Discovery 5.2.1 发布

5.2.0(JUL 5, 2019)

04 Jul 22:59
Compare
Choose a tag to compare

Nepxion Discovery 5.2.0 发布

  1. 升级Spring Cloud到Greenwich.SR2,升级Spring Boot到2.1.6.RELEASE,新旧小版本都兼容
  2. 增加元数据serviceType类型,serviceType=service表示服务,serviceType=gateway表示网关
  3. 增加网关端版本权重和区域权重路由功能,目前共支持如下功能:
    <!-- 网关端的基于Http Header传递的策略路由 -->
    <strategy>
        <!-- 版本路由 -->
        <version>{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</version>
        <!-- <version>1.0</version> -->
        <!-- 区域路由 -->
        <region>{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</region>
        <!-- <region>dev</region> -->
        <!-- IP和端口路由 -->
        <address>{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</address>
        <!-- 权重流量配置有如下四种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 版本权重路由 -->
        <version-weight>{"discovery-springcloud-example-a":"1.0=90;1.1=10", "discovery-springcloud-example-b":"1.0=90;1.1=10", "discovery-springcloud-example-c":"1.0=90;1.1=10"}</version-weight>
        <!-- <version-weight>1.0=90;1.1=10</version-weight> -->
        <!-- 区域权重路由 -->
        <region-weight>{"discovery-springcloud-example-a":"dev=85;qa=15", "discovery-springcloud-example-b":"dev=85;qa=15", "discovery-springcloud-example-c":"dev=85;qa=15"}</region-weight>
        <!-- <region-weight>dev=85;qa=15</region-weight> -->
    </strategy>
  1. 增加全链路版本权重和区域权重功能,目前共支持如下功能:
    <weight>
        <!-- 权重流量配置有如下六种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有版本为1.0的服务提供90%的权重流量,版本为1.1的服务提供10%的权重流量 -->
        <version provider-weight-value="1.0=90;1.1=10"/>

        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有区域为dev的服务提供85%的权重流量,区域为qa的服务提供15%的权重流量 -->
        <region provider-weight-value="dev=85;qa=15"/>
    </weight>
  1. 支持灰度调用链机制,增加ServiceType、ServiceId、ServiceAddress、ServiceVersion、ServiceRegion和ServiceGroup名的Http Header传递。通过如下日志,关闭调用链打印
# 启动和关闭调用链传递的日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.trace.log.print=true
  1. 增加以n-d-为前缀的自定义Header,框架代为传递。对于非n-d-为前缀的Header,通过如下配置增加:
# 用户自定义和编程灰度路由策略的时候,对REST方式调用拦截的时候(支持Feign或者RestTemplate调用),希望把来自外部自定义的Header参数传递到服务里,那么配置如下值。如果多个用“;”分隔,不允许出现空格
spring.application.strategy.request.headers=token
  1. 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。需要通过如下开关做控制:
# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.gateway.header.priority=false

# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.zuul.header.priority=false
  1. 支持根据Group名称做服务隔离,包括:
  • 通过Group黑/白名单机制,在网关和服务侧,实现注册的服务隔离,即允许和拒绝注册
  • 通过负载均衡机制,在网关和服务侧,实现消费端的服务隔离
  • 通过Http Header传递机制,在服务侧,实现提供端的服务隔离
  • 在网关侧实现提供端的服务隔离,需要传递到服务的是网关自身ServiceType,ServiceId等属性(否则传递的是外界的ServiceType,ServiceI等属性,如果它们已设置传递),需要启动“提供端的服务隔离”的开关
  • 在网关侧实现提供端的服务隔离,同时希望利用外界传递的ServiceType,ServiceId等属性做一些限流、熔断、降级、权限等判断,需要自定义Filter,它的Order必须小于8999
    可以通过如下开关,关闭服务隔离功能
# 启动和关闭注册的服务隔离(基于Group黑/白名单的策略)。缺失则默认为false
spring.application.strategy.register.isolation.enabled=true
# 启动和关闭消费端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.consumer.isolation.enabled=true
# 启动和关闭提供端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.provider.isolation.enabled=true
  1. 优化严格控制注册监听器和服务隔离监听器的触发次序
  2. 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。配置项如下:
# 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。缺失则默认为false
# spring.application.no.server.found.notification.enabled=false
  1. 灰度路由开关默认值从false改为true
# 启动和关闭用户自定义和编程灰度路由策略的时候,对REST方式的调用拦截。缺失则默认为true
# spring.application.strategy.rest.intercept.enabled=true
  1. 重构和优化类结构和代码,包括FeignStrategyInterceptor和RestTemplateStrategyInterceptor Header处理机制,Entity类结构,XML解析容错判断等
  2. 重构和简化获取元数据的接口,建议所有元数据的获取方式,通过pluginAdatper.getXXX()方式获取
  3. 修正Zuul Request Headers在Hystrix线程隔离模式下的Bug
  4. 修正Zuul在隔离模式下,获取外部Header为空的Bug
  5. 修正Swagger多路径分隔符的笔误

提示:考虑未来的扩展性,出现了微小不兼容的地方,敬请谅解

ZuulStrategyRouteFilter更名为DefaultZuulStrategyRouteFilter原来的ZuulStrategyRouteFilter变成接口GatewayStrategyRouteFilter更名为DefaultGatewayStrategyRouteFilter原来的GatewayStrategyRouteFilter变成接口覆盖的方法类型从protected改成public

AbstractDiscoveryEnabledStrategy更名为DefaultDiscoveryEnabledStrategy
见4. 增加全链路版本权重和区域权重功能
xml格式中,必须增加type="version"或者type="region",以区别是版本权重,还是区域权重

4.10.0(JUL 5, 2019)

04 Jul 22:57
Compare
Choose a tag to compare

Nepxion Discovery 4.10.0 发布

  1. 升级Spring Cloud到Finchley.SR4,Spring Boot无升级,新旧小版本都兼容
  2. 增加元数据serviceType类型,serviceType=service表示服务,serviceType=gateway表示网关
  3. 增加网关端版本权重和区域权重路由功能,目前共支持如下功能:
    <!-- 网关端的基于Http Header传递的策略路由 -->
    <strategy>
        <!-- 版本路由 -->
        <version>{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</version>
        <!-- <version>1.0</version> -->
        <!-- 区域路由 -->
        <region>{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</region>
        <!-- <region>dev</region> -->
        <!-- IP和端口路由 -->
        <address>{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</address>
        <!-- 权重流量配置有如下四种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 版本权重路由 -->
        <version-weight>{"discovery-springcloud-example-a":"1.0=90;1.1=10", "discovery-springcloud-example-b":"1.0=90;1.1=10", "discovery-springcloud-example-c":"1.0=90;1.1=10"}</version-weight>
        <!-- <version-weight>1.0=90;1.1=10</version-weight> -->
        <!-- 区域权重路由 -->
        <region-weight>{"discovery-springcloud-example-a":"dev=85;qa=15", "discovery-springcloud-example-b":"dev=85;qa=15", "discovery-springcloud-example-c":"dev=85;qa=15"}</region-weight>
        <!-- <region-weight>dev=85;qa=15</region-weight> -->
    </strategy>
  1. 增加全链路版本权重和区域权重功能,目前共支持如下功能:
    <weight>
        <!-- 权重流量配置有如下六种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有版本为1.0的服务提供90%的权重流量,版本为1.1的服务提供10%的权重流量 -->
        <version provider-weight-value="1.0=90;1.1=10"/>

        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有区域为dev的服务提供85%的权重流量,区域为qa的服务提供15%的权重流量 -->
        <region provider-weight-value="dev=85;qa=15"/>
    </weight>
  1. 支持灰度调用链机制,增加ServiceType、ServiceId、ServiceAddress、ServiceVersion、ServiceRegion和ServiceGroup名的Http Header传递。通过如下日志,关闭调用链打印
# 启动和关闭调用链传递的日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.trace.log.print=true
  1. 增加以n-d-为前缀的自定义Header,框架代为传递。对于非n-d-为前缀的Header,通过如下配置增加:
# 用户自定义和编程灰度路由策略的时候,对REST方式调用拦截的时候(支持Feign或者RestTemplate调用),希望把来自外部自定义的Header参数传递到服务里,那么配置如下值。如果多个用“;”分隔,不允许出现空格
spring.application.strategy.request.headers=token
  1. 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。需要通过如下开关做控制:
# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.gateway.header.priority=false

# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.zuul.header.priority=false
  1. 支持根据Group名称做服务隔离,包括:
  • 通过Group黑/白名单机制,在网关和服务侧,实现注册的服务隔离,即允许和拒绝注册
  • 通过负载均衡机制,在网关和服务侧,实现消费端的服务隔离
  • 通过Http Header传递机制,在服务侧,实现提供端的服务隔离
  • 在网关侧实现提供端的服务隔离,需要传递到服务的是网关自身ServiceType,ServiceId等属性(否则传递的是外界的ServiceType,ServiceI等属性,如果它们已设置传递),需要启动“提供端的服务隔离”的开关
  • 在网关侧实现提供端的服务隔离,同时希望利用外界传递的ServiceType,ServiceId等属性做一些限流、熔断、降级、权限等判断,需要自定义Filter,它的Order必须小于8999
    可以通过如下开关,关闭服务隔离功能
# 启动和关闭注册的服务隔离(基于Group黑/白名单的策略)。缺失则默认为false
spring.application.strategy.register.isolation.enabled=true
# 启动和关闭消费端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.consumer.isolation.enabled=true
# 启动和关闭提供端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.provider.isolation.enabled=true
  1. 优化严格控制注册监听器和服务隔离监听器的触发次序
  2. 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。配置项如下:
# 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。缺失则默认为false
# spring.application.no.server.found.notification.enabled=false
  1. 灰度路由开关默认值从false改为true
# 启动和关闭用户自定义和编程灰度路由策略的时候,对REST方式的调用拦截。缺失则默认为true
# spring.application.strategy.rest.intercept.enabled=true
  1. 重构和优化类结构和代码,包括FeignStrategyInterceptor和RestTemplateStrategyInterceptor Header处理机制,Entity类结构,XML解析容错判断等
  2. 重构和简化获取元数据的接口,建议所有元数据的获取方式,通过pluginAdatper.getXXX()方式获取
  3. 修正Zuul Request Headers在Hystrix线程隔离模式下的Bug
  4. 修正Zuul在隔离模式下,获取外部Header为空的Bug
  5. 修正Swagger多路径分隔符的笔误

提示:考虑未来的扩展性,出现了微小不兼容的地方,敬请谅解

ZuulStrategyRouteFilter更名为DefaultZuulStrategyRouteFilter原来的ZuulStrategyRouteFilter变成接口GatewayStrategyRouteFilter更名为DefaultGatewayStrategyRouteFilter原来的GatewayStrategyRouteFilter变成接口覆盖的方法类型从protected改成public

AbstractDiscoveryEnabledStrategy更名为DefaultDiscoveryEnabledStrategy
见4. 增加全链路版本权重和区域权重功能
xml格式中,必须增加type="version"或者type="region",以区别是版本权重,还是区域权重

3.10.0(JUL 5, 2019)

04 Jul 22:55
Compare
Choose a tag to compare

Nepxion Discovery 3.10.0 发布

  1. Spring Cloud和Spring Boot无升级,新旧小版本都兼容
  2. 增加元数据serviceType类型,serviceType=service表示服务,serviceType=gateway表示网关
  3. 增加网关端版本权重和区域权重路由功能,目前共支持如下功能:
    <!-- 网关端的基于Http Header传递的策略路由 -->
    <strategy>
        <!-- 版本路由 -->
        <version>{"discovery-springcloud-example-a":"1.0", "discovery-springcloud-example-b":"1.0", "discovery-springcloud-example-c":"1.0;1.2"}</version>
        <!-- <version>1.0</version> -->
        <!-- 区域路由 -->
        <region>{"discovery-springcloud-example-a":"qa;dev", "discovery-springcloud-example-b":"dev", "discovery-springcloud-example-c":"qa"}</region>
        <!-- <region>dev</region> -->
        <!-- IP和端口路由 -->
        <address>{"discovery-springcloud-example-a":"192.168.43.101:1100", "discovery-springcloud-example-b":"192.168.43.101:1201", "discovery-springcloud-example-c":"192.168.43.101:1300"}</address>
        <!-- 权重流量配置有如下四种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 版本权重路由 -->
        <version-weight>{"discovery-springcloud-example-a":"1.0=90;1.1=10", "discovery-springcloud-example-b":"1.0=90;1.1=10", "discovery-springcloud-example-c":"1.0=90;1.1=10"}</version-weight>
        <!-- <version-weight>1.0=90;1.1=10</version-weight> -->
        <!-- 区域权重路由 -->
        <region-weight>{"discovery-springcloud-example-a":"dev=85;qa=15", "discovery-springcloud-example-b":"dev=85;qa=15", "discovery-springcloud-example-c":"dev=85;qa=15"}</region-weight>
        <!-- <region-weight>dev=85;qa=15</region-weight> -->
    </strategy>
  1. 增加全链路版本权重和区域权重功能,目前共支持如下功能:
    <weight>
        <!-- 权重流量配置有如下六种方式,优先级分别是由高到底,即先从第一种方式取权重流量值,取不到则到第二种方式取值,以此类推,最后仍取不到则忽略。使用者按照实际情况,选择一种即可 -->
        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的1.0版本提供90%的权重流量,1.1版本提供10%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=90;1.1=10" type="version"/>
        <!-- 表示所有版本为1.0的服务提供90%的权重流量,版本为1.1的服务提供10%的权重流量 -->
        <version provider-weight-value="1.0=90;1.1=10"/>

        <!-- 表示消费端服务b访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的dev区域提供85%的权重流量,qa区域提供15%的权重流量 -->
        <service provider-service-name="discovery-springcloud-example-c" provider-weight-value="dev=85;qa=15" type="region"/>
        <!-- 表示所有区域为dev的服务提供85%的权重流量,区域为qa的服务提供15%的权重流量 -->
        <region provider-weight-value="dev=85;qa=15"/>
    </weight>
  1. 支持灰度调用链机制,增加ServiceType、ServiceId、ServiceAddress、ServiceVersion、ServiceRegion和ServiceGroup名的Http Header传递。通过如下日志,关闭调用链打印
# 启动和关闭调用链传递的日志打印,注意每调用一次都会打印一次,会对性能有所影响,建议压测环境和生产环境关闭。缺失则默认为false
spring.application.strategy.trace.log.print=true
  1. 增加以n-d-为前缀的自定义Header,框架代为传递。对于非n-d-为前缀的Header,通过如下配置增加:
# 用户自定义和编程灰度路由策略的时候,对REST方式调用拦截的时候(支持Feign或者RestTemplate调用),希望把来自外部自定义的Header参数传递到服务里,那么配置如下值。如果多个用“;”分隔,不允许出现空格
spring.application.strategy.request.headers=token
  1. 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。需要通过如下开关做控制:
# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.gateway.header.priority=false

# 当外界传值Header的时候,网关也设置并传递同名的Header,需要决定哪个Header传递到后边的服务去。如果下面开关为true,以网关设置为优先,否则以外界传值为优先。缺失则默认为true
spring.application.strategy.zuul.header.priority=false
  1. 支持根据Group名称做服务隔离,包括:
  • 通过Group黑/白名单机制,在网关和服务侧,实现注册的服务隔离,即允许和拒绝注册
  • 通过负载均衡机制,在网关和服务侧,实现消费端的服务隔离
  • 通过Http Header传递机制,在服务侧,实现提供端的服务隔离
  • 在网关侧实现提供端的服务隔离,需要传递到服务的是网关自身ServiceType,ServiceId等属性(否则传递的是外界的ServiceType,ServiceI等属性,如果它们已设置传递),需要启动“提供端的服务隔离”的开关
  • 在网关侧实现提供端的服务隔离,同时希望利用外界传递的ServiceType,ServiceId等属性做一些限流、熔断、降级、权限等判断,需要自定义Filter,它的Order必须小于8999
    可以通过如下开关,关闭服务隔离功能
# 启动和关闭注册的服务隔离(基于Group黑/白名单的策略)。缺失则默认为false
spring.application.strategy.register.isolation.enabled=true
# 启动和关闭消费端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.consumer.isolation.enabled=true
# 启动和关闭提供端的服务隔离(基于Group是否相同的策略)。缺失则默认为false
spring.application.strategy.provider.isolation.enabled=true
  1. 优化严格控制注册监听器和服务隔离监听器的触发次序
  2. 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。配置项如下:
# 由于服务未注册,或者被过滤,或者被隔离,导致消费端拿不到服务实例的时候,通过日志方式通知。缺失则默认为false
# spring.application.no.server.found.notification.enabled=false
  1. 灰度路由开关默认值从false改为true
# 启动和关闭用户自定义和编程灰度路由策略的时候,对REST方式的调用拦截。缺失则默认为true
# spring.application.strategy.rest.intercept.enabled=true
  1. 重构和优化类结构和代码,包括FeignStrategyInterceptor和RestTemplateStrategyInterceptor Header处理机制,Entity类结构,XML解析容错判断等
  2. 重构和简化获取元数据的接口,建议所有元数据的获取方式,通过pluginAdatper.getXXX()方式获取
  3. 修正Zuul Request Headers在Hystrix线程隔离模式下的Bug
  4. 修正Zuul在隔离模式下,获取外部Header为空的Bug
  5. 修正Swagger多路径分隔符的笔误

提示:考虑未来的扩展性,出现了微小不兼容的地方,敬请谅解

ZuulStrategyRouteFilter更名为DefaultZuulStrategyRouteFilter原来的ZuulStrategyRouteFilter变成接口GatewayStrategyRouteFilter更名为DefaultGatewayStrategyRouteFilter原来的GatewayStrategyRouteFilter变成接口覆盖的方法类型从protected改成public

AbstractDiscoveryEnabledStrategy更名为DefaultDiscoveryEnabledStrategy
见4. 增加全链路版本权重和区域权重功能
xml格式中,必须增加type="version"或者type="region",以区别是版本权重,还是区域权重

5.1.2(JUN 18, 2019)

18 Jun 12:28
Compare
Choose a tag to compare

Nepxion Discovery 5.1.2 发布

  1. 路由Header增加通配符功能,采用Spring AntPathMatcher方式,通配路由规则可应用于版本路由,区域路由和地址路由
  2. 增加自定义服务”禁止注册“,”禁止被发现“,”禁止被负载均衡“的机制
  3. 增加自定义网关Filter设置灰度路由规则
  4. 修正Spring Cloud Gateway(WebFlux)、Swagger 2.x.x和servlet-api包同时引入,无法启动Spring Cloud Gateway的问题
  5. 优化Swagger
  6. 优化跨域机制
通过cors.registry.enabled属性,可以关闭跨域机制,使用者可以自定义跨域机制
  1. 修正Spring Cloud Gateway上下文过滤器和路由过滤器的Order问题
  2. 修正引入Spring Boot Admin的问题
  3. 增加当前服务是否基于WebMvc或WebFlux容器的Flag
通过spring.application.servlet.web.server.enabled属性,可以获取是否基于WebMvc容器
spring.application.reactive.web.server.enabled属性,可以获取是否基于WebFlux容器
  1. 适配增加新版本Nacos的配置属性,并体现在示例的bootstrap.properties里
  2. 去除spring.application.context-path不必要的配置项
  3. 去除初始化配置的时候,触发fireCustomization的EventBus事件
  4. 修正配置项拼写错误
  5. 重构优化某些类结构和代码
  6. 优化示例
  7. Postman脚本分组

4.9.2(JUN 18, 2019)

18 Jun 12:24
Compare
Choose a tag to compare

见 Nepxion Discovery 5.1.2 发布

3.9.2(JUN 18, 2019)

18 Jun 12:22
Compare
Choose a tag to compare

见 Nepxion Discovery 5.1.2 发布