spring-cloud - Spring Cloud |假装 Hytrix |首次调用超时

标签 spring-cloud hystrix spring-cloud-feign

我的服务使用了 3 个假客户端。每次启动应用程序时,我都会在第一次调用任何假客户端时收到 TimeoutException。

在一切稳定之前,我必须至少触发每个假客户端一次。在网上查了一下,问题是 feign 或 hystrix 内部的某些东西是延迟加载的,解决方案是创建一个覆盖 spring 默认值的配置类。我已经尝试使用下面的代码,但它仍然没有帮助。我仍然看到同样的问题。有人知道解决这个问题吗?通过 hystrix 回调调用 feignclient 两次是唯一的解决方案吗?

 @FeignClient(value = "SERVICE-NAME", configuration =ServiceFeignConfiguration.class)     

 @Configuration
 public class ServiceFeignConfiguration {

     @Value("${service.feign.connectTimeout:60000}")
     private int connectTimeout;

     @Value("${service.feign.readTimeOut:60000}")
     private int readTimeout;

     @Bean
     public Request.Options options() {
         return new Request.Options(connectTimeout, readTimeout);
     }
 }

Spring Cloud - Brixton.SR4 Spring Boot - 1.4.0.RELEASE

这一切都在docker中运行 乌类图-12.04 docker - 1.12.1 Docker-Compose - 1.8

最佳答案

我发现解决办法是Hystrix的默认属性不好。它们的超时窗口非常小,并且请求在第一次尝试时总是会超时。我将这些属性添加到我的配置服务中的 application.yml 文件中,现在我的所有服务都可以毫无问题地使用 feign,并且我不必在第一次超时时进行编码

hystrix:
 threadpool.default.coreSize: "20"
 threadpool.default.maxQueueSize: "500000"
 threadpool.default.keepAliveTimeMinutes: "2"
 threadpool.default.queueSizeRejectionThreshold: "500000"
 command:
   default:
     fallback.isolation.semaphore.maxConcurrentRequests: "20"
     execution:
       timeout:
         enabled: "false"
       isolation:
         strategy: "THREAD"
         thread:
           timeoutInMilliseconds: "30000"

关于spring-cloud - Spring Cloud |假装 Hytrix |首次调用超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39602627/

相关文章:

java - 从默认 http 客户端设置的 openfeign 请求中删除 header

java - 假装客户端 : DecodeException: Error while extracting response

java - 如何禁用/重启端点授权?

java - 在执行中使用@RefreshScope时如何保持数据一致

spring - Hystrix 和 Spring @Async 组合

Spring Retry 与 Hystrix

spring - 使用 Swagger 生成 Netflix Feign 代码

spring-boot - 将 eureka 与 kubernetes 问题集成

jhipster - feign.RetryableException : Connection refused (Connection refused) executing POST

java - 从基类 stub 方法时,Mockito 抛出 NPE