Spring could 使用Feign超時問題

在使用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的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章