Feign的hystrix熔断器不起作用

Posted aofengdaxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Feign的hystrix熔断器不起作用相关的知识,希望对你有一定的参考价值。

问题描述

在开发spring-cloud项目的时候,Feign的熔断器不起作用,指定了fallback不起作用。

@FeignClient(name = "produce", fallback=ProduceCallback.class)
public interface ProduceSevice 
    @RequestMapping("/index")
    String index();

@Component
public class ProduceCallback implements ProduceSevice 
    @Override
    public String index() 
        return "this is error";
    

当produce停掉以后,直接报错,不会走fallback指定的熔断方法。

互联网上的解决方案

基本上网络上都是指的没有开启hystrix,解决方法是在yml中设置

feign:
  hystrix:
    enabled: true

但是按照这个办法,不起作用 。

摸索到的解决方法

下载了很多源代码,在我本地跑起来hystrix可以起作用,但是我自己建立的项目就是无法起作用。类似的貌似还有bootstrap.yml不起作用。最后排除发现和网络上的代码最大的产品就是spring-cloud的版本区别。

<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>2020.0.0-M6</spring-cloud.version>
    </properties>

我用IDEA建立项目后默认的spring-cloud.version版本是这个样子的。
官网关于spring-cloud.version的介绍
我修改为 Hoxton.SR9 后一切正常。同时把springboot的版本降低为2.3.5.REALSE后表现正常,莫非2020.0.0-M6后对这块代码有巨大变化。

===
附加上版本变化:https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#breaking-changes

以上是关于Feign的hystrix熔断器不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用feign-hystrix实现断路由-简书

Feign-灵活的使用Hystrix熔断(自定义CommandKey)

feign + hystrix 监控和熔断测试

生产技巧:Feign如何控制Hystrix的启停超时熔断?

Feign调用报错:failed and no fallback available

spring cloud feign hystrix fallback 不起作用