前言
在微服务中,系统由许多服务单元构成,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中进行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或者依赖服务自身问题出现调用故障或延迟,这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会因等待出现故障的依赖方响应而形成任务积压,最终导致自身服务瘫痪。
由于微服务中存在众多服务单元,若一个单元出现故障,就很容易因依赖关系而引发故障的蔓延,最终导致整个系统瘫痪。未解决这样的问题,产生了断路器等一系列服务保护机制,而 Spring Cloud Hystrix 就是其中之一。
Spring Cloud Hystrix 基于 Netflix 开源框架 Hystrix 实现,具备 服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功能。