Commit 1e3cfaeb by Nepxion

修改介绍

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