Commit dc29b2a8 by Nepxion

修改介绍

parent b2598462
......@@ -11,7 +11,7 @@ Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon
对于使用者来说,他所需要做的如下:
- 引入相关依赖到pom.xml,参考 [依赖兼容](#依赖兼容)
- 操作配置文件,参考 [配置文件](#配置文件)
- 在元数据MetaData中,必须为微服务定义一个版本号(version),定义一个组名(group)或者应用名(application)。如果要用到区域(region)路由功能,那么需要定义一个区域(region)名,使用者也可以自定义更多的元数据, 参考 (#策略定义)
- 在元数据MetaData中,为微服务定义一个版本号(version),定义一个所属组名(group)或者应用名(application),定义一个所属区域(region)名
- 根据项目实际情况,开启和关闭相关功能项或者属性值,达到最佳配置
- 规则推送,参考 [规则定义](#规则定义)
- 通过远程配置中心推送规则
......@@ -41,6 +41,7 @@ Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon
- [黑/白名单的IP地址发现的过滤规则](#黑/白名单的IP地址发现的过滤规则)
- [版本访问的灰度路由规则](#版本访问的灰度路由规则)
- [版本权重的灰度路由规则](#版本权重的灰度路由规则)
- [区域权重的灰度路由规则](#区域权重的灰度路由规则)
- [用户自定义的灰度路由规则](#用户自定义的灰度路由规则)
- [动态改变规则](#动态改变规则)
- [动态改变版本](#动态改变版本)
......@@ -109,7 +110,9 @@ Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon
- A服务调用B服务,而B服务有两个实例(B1、B2),虽然三者相同的服务名,但功能上有差异,需求是在某个时刻,A服务只能调用B1,禁止调用B2。在此场景下,我们在application.properties里为B1维护一个版本为1.0,为B2维护一个版本为1.1
- 我们可以通过推送A服务调用某个版本的B服务对应关系的配置,达到某种意义上的灰度控制,改变版本的时候,我们只需要再次推送即可
- 多版本权重的灰度控制
- 上述场景中,我们也可以通过配对不同版本的权重(流量比例),根据需求,A访问B的流量在B1和B2进行调拨
- 上述场景中,我们也可以通过配给不同版本的权重(流量比例),根据需求,A访问B的流量在B1和B2进行调拨
- 多区域权重的灰度控制
- 上述场景中,我们也可以通过配给不同区域的权重(流量比例),根据需求,A访问B的流量在B1和B2(B1和B2所属不同区域)进行调拨
- 多数据源的数据库灰度控制
- 我们事先为微服务配置多套数据源,通过灰度发布实时切换数据源
- 动态改变微服务版本
......@@ -139,6 +142,7 @@ Nepxion Discovery是一款对Spring Cloud Discovery服务注册发现、Ribbon
- 通过版本的动态改变,实现切换灰度发布
- 通过版本访问规则的改变,实现切换灰度发布
- 通过版本权重规则的改变,实现平滑灰度发布
- 通过区域权重规则的改变,实现平滑灰度发布
- 实现通过XML或者Json进行上述规则的定义
- 实现通过事件总线机制(EventBus)的功能,实现发布/订阅功能
- 对接远程配置中心,集成Nacos和Redis,异步接受远程配置中心主动推送规则信息,动态改变微服务的规则
......@@ -452,10 +456,13 @@ XML示例(Json示例见discovery-springcloud-example-service下的rule.json)
<!-- service-name,表示服务名 -->
<!-- version-value,表示版本对应的权重值,格式为"版本值=权重值",如果多个用“;”分隔,不允许出现空格 -->
<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"/>
<!-- 表示所有消费端服务访问提供端服务c的时候,提供端服务c的1.0版本提供80%的权重流量,1.1版本提供20%的权重流量 -->
<service provider-service-name="discovery-springcloud-example-c" provider-weight-value="1.0=80;1.1=20"/>
<!-- 表示外界调用进来后,区域为dev的服务提供85%的权重流量,区域为qa的服务提供15%的权重流量 -->
<!-- <region provider-weight-value="dev=85;qa=15"/> -->
</weight>
</discovery>
......@@ -510,6 +517,14 @@ XML示例(Json示例见discovery-springcloud-example-service下的rule.json)
3. 尽量为线上所有版本都赋予权重值
```
### 区域权重的灰度路由规则
```xml
1. 标准配置,举例如下
<region provider-weight-value="dev=85;qa=15"/> 表示区域为dev的服务提供85%的权重流量,区域为qa的服务提供15%的权重流量
2. 区域权重可以切换整条调用链的权重配比
3. 尽量为线上所有区域都赋予权重值
```
### 用户自定义的灰度路由规则
通过订阅业务参数的变化,实现特色化的灰度发布,例如,多数据源的数据库切换的灰度发布
```xml
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment