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
1e3cfaeb
Commit
1e3cfaeb
authored
Jul 02, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改介绍
parent
7ff0eac6
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
20 deletions
+20
-20
README.md
+20
-20
No files found.
README.md
View file @
1e3cfaeb
...
...
@@ -4,10 +4,10 @@
[

](http://www.javadoc.io/doc/com.nepxion/discovery-plugin)
[

](https://travis-ci.org/Nepxion/Discovery)
Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件,支持Eureka、Consul和Zookeeper。现有的Spring Cloud服务可以方便引入该插件,使用者不需要对业务代码做任何修改,只需要做三个非常容易的事情
Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件,支持Eureka、Consul和Zookeeper。现有的Spring Cloud
微
服务可以方便引入该插件,使用者不需要对业务代码做任何修改,只需要做三个非常容易的事情
1. 引入Plugin Starter依赖到pom.xml
2. 为服务定义一个版本号在application.properties里,相信很多使用者本身就已经这么做了
2. 为
微
服务定义一个版本号在application.properties里,相信很多使用者本身就已经这么做了
3. 如果采用了远程配置中心集成的话,那么只需要在那里修改规则(XML),触发推送;如果未集成,可以通过客户端工具(例如Postman)推送修改的规则(XML)
## 痛点
...
...
@@ -16,7 +16,7 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
1. 如果你是运维负责人,是否会经常发现,你掌管的测试环境中的服务注册中心,被一些不负责的开发人员把他本地开发环境注册上来,造成测试人员测试失败。你希望可以把本地开发环境注册给屏蔽掉,不让注册
2. 如果你是运维负责人,生产环境的某个微服务集群下的某个实例,暂时出了问题,但又不希望它下线。你希望可以把该实例给屏蔽掉,暂时不让被调用
3. 如果你是业务负责人,鉴于业务服务的快速迭代性,微服务集群下的实例发布不同的版本。你希望根据版本管理策略进行路由,提供给下游微服务区别调用,达到多版本灰度访问控制
4. 如果你是测试负责人,希望对服务做A/B测试,那么通过动态改变版本达到该目的
4. 如果你是测试负责人,希望对
微
服务做A/B测试,那么通过动态改变版本达到该目的
## 简介
...
...
@@ -41,18 +41,18 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
## 场景
1. 黑/白名单的IP地址注册的过滤
开发环境的本地服务(例如IP地址为172.16.0.8)不希望被注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则
开发环境的本地
微
服务(例如IP地址为172.16.0.8)不希望被注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则
我们可以通过提供一份黑/白名单达到该效果
2. 最大注册数的限制的过滤
当某个微服务注册数目已经达到上限(例如10个),那么后面起来的微服务,将再也不能注册上去
3. 黑/白名单的IP地址发现的过滤
开发环境的本地
服务(例如IP地址为172.16.0.8)已经注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则,该本地服务不会被其他测试环境的
服务所调用
开发环境的本地
微服务(例如IP地址为172.16.0.8)已经注册到测试环境的服务注册发现中心,那么可以在配置中心维护一个黑/白名单的IP地址过滤(支持全局和局部的过滤)的规则,该本地微服务不会被其他测试环境的微
服务所调用
我们可以通过推送一份黑/白名单达到该效果
4. 多版本灰度访问控制
A服务调用B服务,而B服务有两个实例(B1、B2),虽然三者相同的服务名,但功能上有差异,需求是在某个时刻,A服务只能调用B1,禁止调用B2。在此场景下,我们在application.properties里为B1维护一个版本为1.0,为B2维护一个版本为1.1
我们可以通过推送A服务调用某个版本的B服务对应关系的配置,达到某种意义上的灰度控制,切换版本的时候,我们只需要再次推送即可
5. 动态改变版本
在A/B测试中,通过动态改变版本,达到访问版本的路径改变
5. 动态改变
微服务
版本
在A/B测试中,通过动态改变版本,
不重启微服务,
达到访问版本的路径改变
## 依赖
选择相应的插件引入
...
...
@@ -91,7 +91,7 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
| discovery-plugin-starter-eureka | Eureka Starter |
| discovery-plugin-starter-zookeeper | Zookeeper Starter |
## 规则
## 规则
和策略
### 规则示例
请不要被吓到,我只是把注释写的很详细而已,里面配置没几行
```
xml
...
...
@@ -166,30 +166,30 @@ Nepxion Discovery是一款对Spring Cloud Discovery的服务注册增强插件
2. 提供端的application.properties未定义版本号,当消费端在xml里不做任何版本配置,才可以访问该提供端
```
### 动态改变版本
服务启动的时候,由于版本已经写死在application.properties里,使用者希望改变一下版本,而不重启
服务,达到访问版本的路径改变
### 动态改变版本
的规则策略
微服务启动的时候,由于版本已经写死在application.properties里,使用者希望改变一下版本,而不重启微
服务,达到访问版本的路径改变
```
xml
1. 版本分为本地版本和动态版本
2. 本地版本是通过在application.properties里配置的,在服务启动的时候读取
2. 本地版本是通过在application.properties里配置的,在
微
服务启动的时候读取
3. 动态版本是通过POST方式动态设置
4. 多版本灰度规则获取版本值的时候,先获取动态版本,如果不存在,再获取本地版本
```
### 黑/白名单的IP地址注册的过滤规则策略
服务启动的时候,禁止指定的IP地址注册到服务注册发现中心。支持黑/白名单,白名单表示只允许指定IP地址前缀注册,黑名单表示不允许指定IP地址前缀注册
微
服务启动的时候,禁止指定的IP地址注册到服务注册发现中心。支持黑/白名单,白名单表示只允许指定IP地址前缀注册,黑名单表示不允许指定IP地址前缀注册
```
xml
1. 全局过滤,指注册到服务注册发现中心的所有服务,只有IP地址包含在全局过滤字段的前缀中,都允许注册(对于白名单而言),或者不允许注册(对于黑名单而言)
2. 局部过滤,指专门针对某个服务而言,那么真正的过滤条件是全局过滤+局部过滤结合在一起
1. 全局过滤,指注册到服务注册发现中心的所有
微
服务,只有IP地址包含在全局过滤字段的前缀中,都允许注册(对于白名单而言),或者不允许注册(对于黑名单而言)
2. 局部过滤,指专门针对某个
微
服务而言,那么真正的过滤条件是全局过滤+局部过滤结合在一起
```
### 最大注册数的限制的过滤规则策略
服务启动的时候,一旦微服务集群下注册的实例数目已经达到上限(可配置),将禁止后续的微服务进行注册
微
服务启动的时候,一旦微服务集群下注册的实例数目已经达到上限(可配置),将禁止后续的微服务进行注册
```
xml
1. 全局配置值,只下面配置所有的服务集群,最多能注册多少个
2. 局部配置值,指专门针对某个服务而言,那么该值如存在,全局配置值失效
1. 全局配置值,只下面配置所有的
微
服务集群,最多能注册多少个
2. 局部配置值,指专门针对某个
微
服务而言,那么该值如存在,全局配置值失效
```
### 黑/白名单的IP地址发现的过滤规则策略
服务启动的时候,禁止指定的IP地址被服务发现。它使用的方式和“黑/白名单的IP地址注册的过滤”一致
微
服务启动的时候,禁止指定的IP地址被服务发现。它使用的方式和“黑/白名单的IP地址注册的过滤”一致
### 版本属性字段定义策略
不同的服务注册发现组件对应的版本配置值
...
...
@@ -356,9 +356,9 @@ spring-cloud-consul的2.0.0.RELEASE(目前最新的稳定版)支持consul-ap
图2

上述服务分别见discovery-springcloud-example字样的6个DiscoveryApplication,分别对应各自的application.properties。这6个应用,对应的版本和端口号如下表
上述
微
服务分别见discovery-springcloud-example字样的6个DiscoveryApplication,分别对应各自的application.properties。这6个应用,对应的版本和端口号如下表
| 服务 | 服务端口 | 管理端口 | 版本 |
|
微
服务 | 服务端口 | 管理端口 | 版本 |
| --- | --- | --- | --- |
| A1 | 1100 | 5100 | 1.0 |
| B1 | 1200 | 5200 | 1.0 |
...
...
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