Feign整合Hystrix
首先导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
启动类加入注解@EnableCircuitBreaker
创建feign调用接口的实现类HystrixConfigImpl ,在实现类中填写自定义提示参数,在@feignClient注解中配置回滚对象 fallback= HystrixConfigImpl.class
在配置文件填写配置开启feign的Hystrix
feign:
#springcloud 2020之前的
hystrix:
enabled: true
#springcloud 2020之后的
circuitbreaker:
enabled: true
运行结果
测试:关闭被调用的服务或者在被调用的服务的方法中设置休眠时长
Hystrix可定义的配置
hystrix:
command:
# 默认方法的超时时间设置,也可改成自定义方法名
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 100
#降级
metrics:
enabled: true
Gateway整合Hystrix
导入依赖与上面feign内导入的Hystrix依赖相同
定义回退方法
配置gateway配置
spring:
cloud:
gateway:
routes:
- id: host_route1
uri: lb://demoA
predicates:
- Path=/user/get
filters:
#拦截器中配置Hystrix
- name: Hystrix
args:
#默认方法
name: default
#返回回退方法的路径
fallbackUri: forward:/master/fallback
测试方式与上面的相同