背景:在优化业务代码的时候,因为是调试,没有把定时任务job模块启动,而调试的业务代码中刚好又存在对job模块的远程服务调用,理所当然会调用失败,但是理论上来讲应该执行预设的熔断策略,但实际上则是直接抛出异常:
解决过程:查阅网上资料,是因为openfegin版本过高(3.1.5)而没集成hystrix导致的,参考文章:高版本Spring Cloud中OpenFeign整合Hystrix熔断降级不生效的问题及解决方案_openfeign的配置feign.hystrix.enabled没了 什么版本去掉的?-CSDN博客
于是引入:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
但还是报错了:
继续查阅资料,是缺少com.google.guava的引入,于是导入:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
再在yml配置文件配置如下参数:
# feign 配置
feign:
circuitbreaker:
enabled: true
重新启动项目,再次测试,正常执行熔断策略: