1 引言
主要是为了解决服务的雪崩问题,即一个服务出错,引起多个相关的服务无法正常运行。
- 降级机制:当某一个服务出现超时、资源不足、出现异常时,可以执行一个降级方法,直接返回一个托底数据。
- 服务隔离:提供了一个Hystrix线程池,信号量,和服务的线程池相互隔离。
- 熔断:当某一个服务失败率打到一个阈值时,自动触发降级机制。
- 缓存:能够缓存请求的信息。
2 降级机制的实现
1、导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2、在启动类上添加注解
@EnableCircuitBreaker
3、针对接口编写降级方法
//降级方法,可自定义
public Customer findByIdFallback(Integer id) {
return new Customer(-1,"",0);
}
@GetMapping("/customer/{id}")
@HystrixCommand(fallbackMethod = "findByIdFallback")
public Customer findById(@PathVariable(value =