spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间

feign 默认采用的是JDK 的HttpURLConnection 来进行通讯。

feign 调用过程

HystrixInvocationHandler 类的invoke 方法 spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间_第1张图片

 

然后是 SynchronousMethodHandler 类的 invoke方法 spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间_第2张图片
 
这个client 为LoadBalancerFeignClient 类,调用它的execute 方法、
 
 
spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间_第3张图片
 
重点在 getClientConfig方法中,(默认ribbon 的connectionTimeOut 为 2000ms,readTimeout 为 5000ms),会将这两个值都替换为1000ms
spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间_第4张图片
 
会实例化 RibbonClientConfiguration 类的 ribbonClientConfig 这个方法返回的Bean,就是DefaultClientConfigImpl,并覆盖上面说的两个值。
spring boot 1.5.10 feign 采用ribbon 作为负载调用的默认超时时间_第5张图片

你可能感兴趣的:(java)