前言
本例摘自汪云飞编著的《Java EE开发的颠覆者 Spring Boot实战》
主要有6个微服务组成:
config:配置服务
discovery:注册服务
person:为UI模块提供保存person的REST服务
some:为UI模板返回一段字符串
UI:作为应用网关,提供外部访问的唯一接口。使用Feign消费person服务、Ribbon消费some服务 ,且都提供断路器功能。
monitor:监控UI模块中的断路器。
1.项目构建
新建模块化的maven项目ch12,修改pom.xml文件:
1.1使用<modules>标签来实现模块化
1.2使用spring-cloud-starter-parent替代spring-boot-starter-parent,其具备spring-boot-starter-parent的同样功能并附加了Spring Could的依赖。
1.3添加依赖,对所有子模块都是有效的,即在子模块中不再添加这些模块。
2.注册服务-Discovery
2.1注册服务依赖于Eureka Server,所以需要加上依赖:
2.2修改入口类,加上注解@EnableEurekaServer,开启对EurekaServer的支持。
2.3配置,这里使用yml配置。
application.yml
3.配置服务
通过Config Server,我们可以集中存储所有应用的配置文件。
3.1修改pom.xml文件,添加依赖;作为配置服务的依赖spring-cloud-config-server,作为eureka客户端的依赖spring-cloud-starter-eureka;
3.2修改入口类,开启配置服务器的支持,开启作为eureka server客户端的支持。
3.3配置
bootstrap.xml : 负责从外部资源加载配置属性
application.yml
配置其他应用所需的配置文件的位置位于类路径下的config目录下:
4.服务模块--Person服务
4.1添加依赖
4.2修改入库类
4.3配置
bootstrap.yml
application.yml
5.服务模块--Some服务
5.1依赖
5.2修改入库类
5.3配置
bootstrap.yml
application.yml
6.界面模块-UI
6.1本模块会使用ribbon、feign、zuul以及CircuitBreaker,添加相关依赖;本模快是一个具有界面的模块,所以通过webjar加载了一些常用的脚本框架:
6.2修改入库类
6.3使用feign调用Person Service
·6.4调用Person Service的断路器
6.5使用ribbon调用Some Service,并使用断路器
6.6配置
bootstrap.yml
application.yml
7.断路器监控-Monitor
7.1依赖
7.2入库类
7.3配置
bootstrap.yml
application.yml
8.运行
依次启动DiscoveryAppliction、ConfigApplication,后面的微服务部分顺序启动,最后启动MonitorApplication。
启动完成后,访问http://localhost:8761,查看Eureka Server。
8.1访问UI服务。http://localhost:8090
8.1.1调用Person Service.
8.1.2调用Some service
8.2断路器
停掉Person Service和Some Service,观察断路器效果。
8.3断路器监控
访问http://localhost:8989/hystrix.stream
输入http://localhost:8090/hystrix.stream
监控界面: