断路器是电路中的一个保护电路安全的开关,当电路出现短路时,断路器会自动跳闸,防止出现电路故障。
一个微服务架构的系统中也需要这种保护装置,当消费者调用某一个服务的时候,如当前的服务有异常,譬如服务已经挂了,这时候就需要断路器来把当前调用的服务断开,Spring Cloud中集成的断路器组件为:Hystrix。如图所示,Hystrix在调用服务失败的情况下会进行回退或者降级处理,比如快速失败、无声失败、返回默认值、自己组装一个返回值、利用远程缓存、主次方式回退等回退类型。
降级回退相关资料:https://www.jianshu.com/p/3e11ac385c73?from=timeline
以上一章的调用用户服务为例,先实现Java端的再移植到.net core
1.服务调用设置断路器java版
在Spring Cloud官方文档搜索断路器:Circuit Breaker
参考:
官方文档示例:
1.1 添加断路器依赖
断路器是在消费者调用时添加的,首先在orderservice上添加Hystrix依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>