Spring Cloud | Feign Hytrix | First Call Timeout

穿精又带淫゛_ 提交于 2019-12-05 02:11:26

问题


I have a service that has uses 3 feign clients. Each time I start my application, I get a TimeoutException on the first call to any feign client.

I have to trigger each feign client at least once before everything is stable. Looking around online, the problem is that something inside of feign or hystrix is lazy loaded and the solution was to make a configuration class that overrides the spring defaults. I've tried that wiith the below code and it is still not helping. I still see the same issue. Anyone know a fix for this? Is the only solution to call the feignclient twice via a hystrix callback?

 @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

This is all running in docker Ubuntu - 12.04 Docker - 1.12.1 Docker-Compose - 1.8


回答1:


I found the solution to be that the default properties of Hystrix are not good. They have a very small timeout window and the request will always time out on the first try. I added these properties to my application.yml file in my config service and now all of my services can use feign with no problems and i dont have to code around the first time timeout

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"


来源:https://stackoverflow.com/questions/39602627/spring-cloud-feign-hytrix-first-call-timeout

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!