在分布式框架中当某个服务单元发生故障之后通过断路器的故障监控向调用方返回一个错误响应,而不是长期等待这样就不会使得线程因调用故障服务被长时间占用不放,避免了故障在分布式系统中的蔓延
针对上述问题,Spring Cloud Hystrix实现了断路器、线程隔离等一系列服务保护功能。
这里我们先做一个实验,启动注册中心、两个helloservice服务和ribbon服务
当我们停掉一个hello服务的时候用ribbon测试
为了解决上述问题我们开始试着构建我们的Hystrix
下面我们新建一个名为hystrix-service的项目,依赖包的引入在ribbon的基础上加入spring-cloud-starter-hystrix
主类加@EnableCircuitBreaker注解
改造服务的消费方式,加入helloservice
同样controller通过注入service来完成调用
当两个hello实例都正常运行时我们的hystrix服务可以正常消费到hello服务提供的接口
当我们停掉某一个hello服务时
会得到如下信息即我们在fallbackMethod方法中给定的返回。
这就是hystrix所谓的服务降级。