feign.RetryableException: Read timed out

产线异常如下:

 

很明显,告诉我们读超时了,需要涉及feign的读超时时间,顺带阅读下源码:

根据如上的堆栈信息,直接打开SynchronousMethodHandler.java 看104行 (FeignException.java不用看,很明显是个包装的exception)

 查看option在当前类中如何初始化的

 右键构造函数,find usage

 原来是当前类的静态内部类

 

 如法炮制,继续查看谁调用该静态内部类的create方法:

 继续查看 ReflectiveFeign中 option的初始化在哪,又一个静态内部类

 继续查看静态内部类的构造函数是谁调用的

  找到大本营了,原来是Feign中build方法调用的,继续查看该options的初始化

 首先,它有默认值:默认链接超时10S,读超时60S

 其次,谁可以给它set值:查看谁可以调用给方法重置option值

 如下类中有2个:

 查看configureUsingProperties方法:

 

 重点看FeignClientProperties.FeignClientConfiguration内部类

 

 一切真相了,这里就是我们的自定义配置项。。。

 

参考:

posted @ 2021-11-23 12:00  花花牛  阅读(3383)  评论(0编辑  收藏  举报