Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈文顺
discovery
Commits
dc29b2a8
Commit
dc29b2a8
authored
Sep 12, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改介绍
parent
b2598462
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
2 deletions
+17
-2
README.md
+17
-2
No files found.
README.md
View file @
dc29b2a8
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment