项目使用讲解
特点
-
此项目针对 SpringCloud 的负载均衡 LoadBlance 的原理进行了高度的定制化设计,能够根据相应的规则灵活的过滤服务,来实现蓝绿发布、灰度发布的功能
-
支持的注册中心 Nacos、Eureka
-
可以根据请求头配置规则
-
可以根据配置中心来设置规则策略
- 如果请求头和配置中心同时存在,以请求头为准
- 支持的配置中心:Apollo、Nacos 并支持灵活改变规则策略,服务无需重启
-
兼容蓝绿灰度多种模式发布
- 支持版本、区域、组维度
- 支持区域故障兜底隔离策略
- 支持蓝绿发布、灰度发布的启用/禁用模式
- 支持自定义服务过滤条件
-
解决了 业务线程池、Hystrix 的线程池隔离模式中,request 获取数据错误的问题(包括 Gateway 和Servlet 两种方式)
-
能够深度的学习 SpringCloud 的负载均衡(Ribbon、LoadBlance)的原理,如何利用装饰者模式,在框架原有的功能进行增强
-
深度使用 SpringBoot 的自动装配机制,并设置 Bean 的加载优先级,通过此项目的学习对自动装配会有深度的理解和实践
-
使用大量的设计模式,进行解耦和抽象,并借鉴了经典框架 Spring、SpringBoot 的源码中经典的设计。使用的设计模式有:工厂模式、单例模式、策略模式、模板模式、责任链模式、观察者模式、装饰者模式、组合模式、命令模式、外观模式
-
使用了 Spring 和 SpringBoot 的高级功能,如 Spring 的后置 PostProcess 处理器、Spring 的监听器
使用
首先需要引入项目的依赖,由于此项目的功能有兼容功能,所以并不是直接引入一个依赖就可以了。而是要分功能来引入。
注册中心功能依赖
注册到 Nacos
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-register-nacos-starter</artifactId>
<version>${revision}</version>
</dependency>
注册到 Eureka
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-register-eureka-starter</artifactId>
<version>${revision}</version>
</dependency>
配置中心功能依赖
使用 Nacos
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-config-nacos-starter</artifactId>
<version>${revision}</version>
</dependency>
使用 Apollo
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-config-apollo-starter</artifactId>
<version>${revision}</version>
</dependency>
核心功能功能依赖
Gateway 网关服务
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-work-gateway-starter</artifactId>
<version>${revision}</version>
</dependency>
普通业务服务
<dependency>
<groupId>org.javaup</groupId>
<artifactId>link-flow-work-service-starter</artifactId>
<version>${revision}</version>
</dependency>