在微服务的架构中,服务之间的相互调用,有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务的瘫痪,进一步甚至出现故障的蔓延最终导致整个系统的瘫痪。如果这样的架构存在如此严重的隐患,那么相较传统架构就更加的不稳定。为了解决这样的问题,因此产生了断路器等一系列的服务保护机制。
一、准备
将服务消费者(Ribbon)这篇博客Consumer-Ribbon工程复制,名字命令为Consumer-Ribbon-Hystrix。
二、工程修改
工程gradle依赖修改为
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.cloud:spring-cloud-starter-eureka:1.4.4.RELEASE')
compile('org.springframework.cloud:spring-cloud-starter-hystrix:1.4.4.RELEASE'