首页 > 解决方案 > Spring cloud openfeign 3.0.1回退未被触发

问题描述

我正在使用 spring-cloud-starter-openfeign 的 3.0.1 版本,并且在回退实现方面遇到了问题。如果发生任何异常,似乎它不会被触发。

为了引发异常,我配置了一个带有无效主机作为 url 的 feign 客户端:

@FeignClient(name = "feignClientTest", url = "invalid.url", fallback = FeignClientTest.FallbackTest.class)
public interface FeignClientTest {

    @RequestMapping(method = RequestMethod.GET, value = "/fake/url")
    String getFromFakeUrl();

    @Component
    class FallbackTest implements FeignClientTest {

        private final Logger log = LoggerFactory.getLogger(this.getClass());

        @Override
        public String getFromFakeUrl() {
            log.debug("Fallback occurred for getFromFakeUrl");
            return "Fallback";
        }
    }
}


调用 getFromFakeUrl() 方法后,我得到一个 java.net.UnknownHostException 而不是回退实现中使用的“Fallback”字符串。

我在应用程序配置文件中设置了 feign.circuitbreaker.enabled=true 。

我应该配置更多吗?我错过了什么吗?

提前致谢。

标签: spring-cloud

解决方案


最后,我修复了添加依赖项的问题:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

推荐阅读