Spring boot @使用eureka服务id时假装客户端始终超时

Spring boot @使用eureka服务id时假装客户端始终超时,spring-boot,hystrix,netflix-feign,spring-cloud-feign,feign,Spring Boot,Hystrix,Netflix Feign,Spring Cloud Feign,Feign,我有一个SpringBoot应用程序,它使用声明性的假客户端 @ComponentScan @EnableFeignClients @EnableCircuitBreaker @EnableDiscoveryClient @EnableZuulProxy @FeignClient(name = "${service-registry-name}", fallbackFactory = MyFallbackFactory.class, configuration = CommonFeignConf

我有一个SpringBoot应用程序,它使用声明性的假客户端

@ComponentScan
@EnableFeignClients
@EnableCircuitBreaker
@EnableDiscoveryClient
@EnableZuulProxy
@FeignClient(name = "${service-registry-name}", fallbackFactory = MyFallbackFactory.class, configuration = CommonFeignConfiguration.class)
public interface MyClient {

    @RequestMapping(method = RequestMethod.GET, path = "/test/reference/data")
    HttpEntity<String> getAllData();}
这个spring启动应用程序工作得非常好,当我调试时,我可以看到30000的超时值被正确应用

当我将这段代码不是作为一个独立的spring boot应用程序而是作为一个依赖项jar用于另一个项目时,问题就开始了

此时,超时值始终为1000,这是默认值。我也设法克服了这一点。但尽管如此,我还是得到了HystrixRunTimeException,Timeout和null

我已经假装.hystrix.enabled=true

如果我使用feign.hystrix.enabled=false,我可以看到我的请求没有超时,但是回退机制无法工作


但是,当我在FaignClient中添加URL属性时,它工作正常并且不会超时。我不能依赖URL属性,因为它来自cloud foundry服务URL,可以更改。

在Application.yml文件中添加以下属性

feign:
  client: 
    config: 
      default:
         connectTimeout: 80000000
         readTimeout: 80000000

我将URL属性添加到@FeignClient,现在我没有超时问题。但这对我来说是一个糟糕的解决方法,因为URL是CloudFoundy服务URL,它会发生变化。所以,现在我的问题陈述还包括,为什么在使用服务id名称(eureka service registry)时假装客户端超时,但在添加URL时却没有超时?????
feign:
  client: 
    config: 
      default:
         connectTimeout: 80000000
         readTimeout: 80000000