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
45121fa4
Commit
45121fa4
authored
Jul 01, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改介绍
parent
5fd26222
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
13 deletions
+25
-13
README.md
+25
-13
No files found.
README.md
View file @
45121fa4
...
@@ -43,15 +43,18 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
...
@@ -43,15 +43,18 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
## 场景
## 场景
1. 黑/白名单的IP地址注册的过滤
1. 黑/白名单的IP地址注册的过滤
开发环境的本地服务(例如IP地址为172.16.0.8)不希望被注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则
开发环境的本地服务(例如IP地址为172.16.0.8)不希望被注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的
IP地址过滤(支持全局和局部的过滤)的规则
我们可以通过提供一份黑/白名单达到该效果
我们可以通过提供一份黑/白名单达到该效果
2. 最大注册数的限制的过滤
2. 最大注册数的限制的过滤
当某个微服务注册数目已经达到上限(例如10个),那么后面起来的微服务,将再也不能注册上去
当某个微服务注册数目已经达到上限(例如10个),那么后面起来的微服务,将再也不能注册上去
3. 黑/白名单的IP地址发现的过滤
3. 黑/白名单的IP地址发现的过滤
开发环境的本地服务(例如IP地址为172.16.0.8)已经注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则,该本地服务不会被其他测试环境的服务所调用
开发环境的本地服务(例如IP地址为172.16.0.8)已经注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地
址过滤(支持全局和局部的过滤)的规则,该本地服务不会被其他测试环境的服务所调用
我们可以通过推送一份黑/白名单达到该效果
我们可以通过推送一份黑/白名单达到该效果
4. 多版本灰度访问控制
4. 多版本灰度访问控制
A服务调用B服务,而B服务有两个实例(B1、B2),虽然三者相同的服务名,但功能上有差异,需求是在某个时刻,A服务只能调用B1,禁止调用B2。在此场景下,我们在application.properties里为B1维护一个版本为1.0,为B2维护一个版本为1.1
A服务调用B服务,而B服务有两个实例(B1、B2),虽然三者相同的服务名,但功能上有差异,需求是在某个时刻,A服务只能调用B1,禁止调
用B2。在此场景下,我们在application.properties里为B1维护一个版本为1.0,为B2维护一个版本为1.1
我们可以通过推送A服务调用某个版本的B服务对应关系的配置,达到某种意义上的灰度控制,切换版本的时候,我们只需要再次推送即可
我们可以通过推送A服务调用某个版本的B服务对应关系的配置,达到某种意义上的灰度控制,切换版本的时候,我们只需要再次推送即可
## 依赖
## 依赖
...
@@ -169,7 +172,8 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
...
@@ -169,7 +172,8 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
### 黑/白名单的IP地址注册的过滤规则策略
### 黑/白名单的IP地址注册的过滤规则策略
服务启动的时候,禁止指定的IP地址注册到服务注册发现中心。支持黑/白名单,白名单表示只允许指定IP地址前缀注册,黑名单表示不允许指定IP地址前缀注册
服务启动的时候,禁止指定的IP地址注册到服务注册发现中心。支持黑/白名单,白名单表示只允许指定IP地址前缀注册,黑名单表示不允许指定IP地址前缀注册
```
xml
```
xml
1. 全局过滤,指注册到服务注册发现中心的所有服务,只有IP地址包含在全局过滤字段的前缀中,都允许注册(对于白名单而言),或者不允许注册(对于黑名单而言)
1. 全局过滤,指注册到服务注册发现中心的所有服务,只有IP地址包含在全局过滤字段的前缀中,都允许注册(对于白名单而言),或者不允许注册(
对于黑名单而言)
2. 局部过滤,指专门针对某个服务而言,那么真正的过滤条件是全局过滤+局部过滤结合在一起
2. 局部过滤,指专门针对某个服务而言,那么真正的过滤条件是全局过滤+局部过滤结合在一起
```
```
...
@@ -308,8 +312,9 @@ http://IP:[server.port]/routeAll
...
@@ -308,8 +312,9 @@ http://IP:[server.port]/routeAll
## 扩展和自定义更多规则或者监听
## 扩展和自定义更多规则或者监听
使用者可以继承如下类
使用者可以继承如下类
```
xml
```
xml
AbstractRegisterListener,实现服务注册的扩展和监听
1. AbstractRegisterListener,实现服务注册的扩展和监听
AbstractDiscoveryListener,实现服务发现的扩展和监听,注意,在Consul下,同时会触发service和management两个实例的事件,需要区别判断,见图1
2. AbstractDiscoveryListener,实现服务发现的扩展和监听,注意,在Consul下,同时会触发service和management两个实例的事件,需要
区别判断,见图1
```
```
图1,集成了健康检查的Consul控制台
图1,集成了健康检查的Consul控制台
...
@@ -317,7 +322,8 @@ AbstractDiscoveryListener,实现服务发现的扩展和监听,注意,在C
...
@@ -317,7 +322,8 @@ AbstractDiscoveryListener,实现服务发现的扩展和监听,注意,在C
## Spring Cloud引入Consul的坑
## Spring Cloud引入Consul的坑
```
xml
```
xml
spring-cloud-consul的2.0.0.RELEASE(目前最新的稳定版)支持consul-api-1.2.2版本,它不兼容Consul的1.0.0以上的服务器,原因是服务的deregister在consul-api-1.2.2中是执行GET方法,而Consul的1.0.0以上的服务器对应的是PUT方法
spring-cloud-consul的2.0.0.RELEASE(目前最新的稳定版)支持consul-api-1.2.2版本,它不兼容Consul的1.0.0以上的服务器,原因是
服务的deregister在consul-api-1.2.2中是执行GET方法,而Consul的1.0.0以上的服务器对应的是PUT方法
解决办法,二选一
解决办法,二选一
1. 选用1.0.0以下的服务器,从https://releases.hashicorp.com/consul/0.9.3/获取
1. 选用1.0.0以下的服务器,从https://releases.hashicorp.com/consul/0.9.3/获取
2. 或者,spring-cloud-consul中consul-api-1.2.2.jar替换到最新的版本
2. 或者,spring-cloud-consul中consul-api-1.2.2.jar替换到最新的版本
...
@@ -370,12 +376,18 @@ spring-cloud-consul的2.0.0.RELEASE(目前最新的稳定版)支持consul-ap
...
@@ -370,12 +376,18 @@ spring-cloud-consul的2.0.0.RELEASE(目前最新的稳定版)支持consul-ap
黑/白名单的IP地址发现的过滤 & 多版本灰度访问控制(单个微服务需要推送多次,如果是远程配置中心,则推送一次够了)
黑/白名单的IP地址发现的过滤 & 多版本灰度访问控制(单个微服务需要推送多次,如果是远程配置中心,则推送一次够了)
```
xml
```
xml
1. 启动3个工程共6个Application
1. 启动3个工程共6个Application
2. 通过Postman或者浏览器,执行GET http://localhost:1100/instances/discovery-springcloud-example-b,查看当前A服务可访问B服务的列表
2. 通过Postman或者浏览器,执行GET http://localhost:1100/instances/discovery-springcloud-example-b,查看当前A服务可访问B
3. 通过Postman或者浏览器,执行GET http://localhost:1200/instances/discovery-springcloud-example-c,查看当前B1服务可访问C服务的列表
服务的列表
4. 通过Postman或者浏览器,执行GET http://localhost:1201/instances/discovery-springcloud-example-c,查看当前B2服务可访问C服务的列表
3. 通过Postman或者浏览器,执行GET http://localhost:1200/instances/discovery-springcloud-example-c,查看当前B1服务可访问
5. 通过Postman或者浏览器,执行POST http://localhost:1100/routeAll/,填入discovery-springcloud-example-b;discovery-springcloud-example-c,可以看到路由全路径,如图3结果
C服务的列表
6. 通过Postman或者浏览器,执行POST http://localhost:5200/config/send,发送新的规则XML,那么在B1服务上将会运行新的规则,再运行上述步骤,查看服务列表
4. 通过Postman或者浏览器,执行GET http://localhost:1201/instances/discovery-springcloud-example-c,查看当前B2服务可访问
7. 通过Postman或者浏览器,执行POST http://localhost:5201/config/send,发送同样的规则XML,那么在B1服务上将会运行新的规则,再运行上述步骤,查看服务列表
C服务的列表
5. 通过Postman或者浏览器,执行POST http://localhost:1100/routeAll/,填入
discovery-springcloud-example-b;discovery-springcloud-example-c,可以看到路由全路径,如图3结果
6. 通过Postman或者浏览器,执行POST http://localhost:5200/config/send,发送新的规则XML,那么在B1服务上将会运行新的规则,再
运行上述步骤,查看服务列表
7. 通过Postman或者浏览器,执行POST http://localhost:5201/config/send,发送同样的规则XML,那么在B1服务上将会运行新的规则,
再运行上述步骤,查看服务列表
8. 通过Postman或者浏览器,执行GET http://localhost:5200/config/view,查看当前在B1服务已经生效的规则
8. 通过Postman或者浏览器,执行GET http://localhost:5200/config/view,查看当前在B1服务已经生效的规则
9. 通过Postman或者浏览器,执行GET http://localhost:5201/config/view,查看当前在B2服务已经生效的规则
9. 通过Postman或者浏览器,执行GET http://localhost:5201/config/view,查看当前在B2服务已经生效的规则
10.再执行步骤5,可以看到路由全路径将发生变化
10.再执行步骤5,可以看到路由全路径将发生变化
...
...
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