SpringCloud 大整合
首先放一张自己制作的SpringCloud拓扑图
根据这张图我们进行整合
- SpringCloud Eureka
- SpringCloud Config
- SpringCloud Feign
- SpringCloud Hystrix
- SpringCloud Zuul
1.工程创建
首先我们要创建一个工程,Maven工程
2.依赖添加
这里我们直接在pom中添加我们需要的依赖,SpringBoot,SpringCloud等
SpringBoot版本:1.5.8
SpringCloud版本:Dalston.SR4
1 | <dependencyManagement> |
这里有个小细节,除了Spring Cloud Config,其他都添加了,为什么呢?我们后面整合时再说
3.整合Eureka
首先创建一个Eureka模块
创建启动类,开启@EnableEurekaServer
注解
1 |
|
编写配置文件,application.properties
1 | # 应用名称 |
4.创建Service Provider与Consumer
创建Service Provider
首先创建模块
创建启动器类,并开启@EnableDiscoveryClient
注解
1 |
|
创建一个Controller
类以供调用
1 |
|
创建配置文件,application.properties
1 | # 应用名称 |
创建Service Consumer
首先创建模块
创建启动器类,并开启@EnableDiscoveryClient
注解
1 |
|
创建一个Controller
类以供调用
1 |
|
这里我们先return null,之后整合Feign再进行改造,来调用服务提供方的服务。
创建配置文件,application.properties
1 | # 应用名称 |
5.整合Feign与Hystrix
这里使用Feign与Hystrix,都是在服务消费方改造的
Service-Consumer
添加@FeignClient
接口
1 | "${provider.service.name}",fallback = FeignFallback.class) (name = |
再添加FallBack
类,即熔断后执行的方法
1 |
|
调整FeignService
接口
1 | "${provider.service.name}",fallback = FeignFallback.class) (name = |
修改Controller
:
1 |
|
修改配置文件:
1 | # 应用名称 |
整合到这里,我们可以测试一下。按顺序启动:eureka - provider - consumer
,然后访问<http://localhost:8080/get?id=1
>
正确访问,就没有问题,继续往下整合
6.整合Config
对于SpringCloud配置平台来说,主要的使用方是服务消费者,所以我们这里要做两件事
- 创建Config Server
- 改造Service Consumer
创建Config Server
创建一个工程,server-config
添加依赖
1 | <dependencies> |
创建启动器类
1 |
|
这里主要添加@EnableConfigServer
添加配置,application.properties
1 | # 应用名称 |
在resources
下configs
文件夹,在其下面添加enbuys.properties
,为服务消费者准备
1 | # 服务提供方名称 |
将配置文件添加到git
仓库中,在configs
目录下进行git初始化
1 | > git init |
修改Service Consumer
添加依赖
1 | <dependencies> |
修改application.properties
1 | # 服务端口 |
==这里将服务提供方名称,以及Hystrix的开启注释掉,因为整合了Config,配置直接使用配置服务器上的==
创建bootstrap.properties
1 | # 应用名称 |
这里为何要将应用名称和注册中心地址放在bootstrap配置文件里,可以看之前第三个笔记 SpringCloud Config Sever
为何依赖要添加在子模块里
==经测试,在父pom文件中添加config-server依赖,会导致config client端,即服务消费者拉取不了config server==,所以要分开添加依赖
7.整合Zuul
创建一个Zuul模块
创建启动器类
1 |
|
添加配置文件
1 | server-zuul = |
8.测试
启动Eureka -> Config -> Service Provider -> Service Consumer -> Zuul
Eureka测试
首先我们可以访问http://localhost:10001/,查看各个服务是否启动成功
出现4个服务说明启动成功
Config测试
访问http://localhost:7070/enbuys-default.properties
Provider测试
访问http://localhost:9090/get?id=1>是否正确请求
Consumer测试
访问http://localhost:8080/get?id=1是否正确请求
查看http://localhost:8080/env,是否加载了配置中心的配置
Zuul测试
然后我们可以访问http://localhost:6060/routes,查看zuul是否正确路由
如下3个路由规则,说明正确路由
最终测试
接着我们可以访问http://localhost:6060/service-consumer/get?id=1
出现Pacee,说明大功告成,我们的大整合成功。