Hystrix
1. 监控 总共请求多少次,有多少次失败 假设失败率达倒10% 断路器打开
2. 断路器的状态
3. 分流
4. 自我修复(断路器状态的切换)
措施:
1 将问题模块“隔离”
2 加入容错机制
3 加入“熔断”,在一定时间内,不再调用问题模块,以维持本身稳定
Hystrix被设计的目标是:
- 对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。
- 在复杂的分布式系统中阻止级联故障。
- 快速失败,快速恢复。
- 回退,尽可能优雅地降级。
- 启用近实时监控、警报和操作控制。
使用方法:
1) <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
2)当接口请求超过1秒回调用
@GetMapping("/movie/{id}")
@HystrixCommand(fallbackMethod = "findByIdFallback")
public User findById(@PathVariable Long id) {
return this.restTemplate.getForObject("http://microservice-provider-user/simple/" + id, User.class);
}