在使用Spring Cloud的時候遇見了 這個異常:
feign.RetryableException: Read timed out executing POST xxxxxx
at feign.FeignException.errorExecuting(FeignException.java:65)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:105)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:77)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:102)
at com.sun.proxy.$Proxy113.generateUserContract(Unknown Source)
.....
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at feign.Client$Default.convertResponse(Client.java:150)
at feign.Client$Default.execute(Client.java:72)
spring boot :2.0.6.RELEASE
spring cloud :Finchley.SR2
組件中使用了 Eureka 、Feign ,因爲Feign中引用了Ribbon,所以就沒有顯示引用jar.
再往上找到了各種遇見這個問題的解決方案,但是在這個版本號之內已經沒有了:
ribbon.connect-timeout和ribbon.read-timeout 這兩個變量的定義,所以在看了官方文檔之後:
feign.client.config.default.connect-timeout=20000 feign.client.config.default.read-timeout=20000
這兩個參數就可以解決timeout的問題。