业务简述:私有化部署项目,大量请求通过GATEWAY后,在A工程中调用B工程的FEIGN
NACOS中gateway配值文件中的hystrix配值信息全部删除,虽然依旧熔断,但至少保证接口可以进入A工程;报错信息如下:
nested exception is feign.RetryableException: Read timed out executing GET http://xxxxxxxxx] with root cause
java.net.SocketTimeoutException: Read timed out
at java.base/java.net.SocketInputStream.socketRead0(Native Method)
at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)
at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:252)
at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:292)
at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:351)
at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:754)
at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1615)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1520)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at feign.Client$Default.convertResponse(Client.java:82)
at feign.Client$Default.execute(Client.java:78)
....
为A工程NACOS配值FEIGN、RIBBON、代码中setConnectTimeout 依旧熔断后,为B工程NACOS配值FEIGN、RIBBON*(这个场景重要的是ribbon配置)
feign:
client:
config:
default:
connectTimeout: 30000
readTimeout: 60000
hystrix:
enabled: false
ribbon:
ReadTimeout: 60000
然后前台的“高并发”请求终于不报错了...
话说没几个用户,业务也简单的私有化部署要真的有必整熔断吗...