服务注册超时时间Read timed out报错解决
服务注册超时时间Read timed out报错解决
数据批量导出,大批量的数据,如根据结算日期按月来导出的业务场景。
客户端报错提示:
Caused by: java.net.SocketTimeoutException: Read timed out
服务端报错提示:
org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
原因:
1、客户端请求服务器数据,服务器突然挂了;
2、客户端请求服务端数据,服务端正常返回,但客户端由于连接超时或者其他原因断开导致服务端无返回通道导致。
解决办法:
大部分原因是 原因2 导致的,可以直接在服务调用方设置Feign链接的超时时间解决,服务提供方优化接口的响应效率。
可以在项目配置文件中添加配置超时时间:
#更改Apollo配置: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 20000 ribbon.ReadTimeout = 20000 ribbon.ConnectTimeout = 20000 #如果以上没有生效,加上如下配置: feign.client.config.default.connectTimeout = 20000 feign.client.config.default.readTimeout = 20000