java.io.IOException: Broken pipe at … 错误
错误现象
java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.writev0(Native Method) at sun.nio.ch.SocketDispatcher.writev(Unknown Source) at sun.nio.ch.IOUtil.write(Unknown Source) at sun.nio.ch.SocketChannelImpl.write(Unknown Source) at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:184) at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:647) at io.undertow.conduits.ChunkedStreamSinkConduit.doWrite(ChunkedStreamSinkConduit.java:166) at io.undertow.conduits.ChunkedStreamSinkConduit.write(ChunkedStreamSinkConduit.java:128) at io.undertow.conduits.ChunkedStreamSinkConduit.write(ChunkedStreamSinkConduit.java:219) at org.xnio.conduits.ConduitStreamSinkChannel.write(ConduitStreamSinkChannel.java:158) at io.undertow.channels.DetachableStreamSinkChannel.write(DetachableStreamSinkChannel.java:179) at io.undertow.server.HttpServerExchange$WriteDispatchChannel.write(HttpServerExchange.java:2070) at org.xnio.channels.Channels.writeBlocking(Channels.java:152) at io.undertow.servlet.spec.ServletOutputStreamImpl.writeTooLargeForBuffer(ServletOutputStreamImpl.java:198) at io.undertow.servlet.spec.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:146) at com.fasterxml.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:2085) at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1097) at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:915) at org.springblade.core.tool.jackson.AbstractReadWriteJackson2HttpMessageConverter.writeInternal(AbstractReadWriteJackson2HttpMessageConverter.java:115)
错误出现原因
.对应请求的服务器宕机或者异常,导致服务不可用
2.由于服务器处理请求时间过长导致客户端请求超时后自动关闭了链接,当 无服务处理完尝试将结果返回给客户端时候出现官渡奥断裂 异常
处理方案
1.针对原因1,处理对应服务器问题即可解决
2.针对原因2,分端处理
(1)客户端:客户端超时时间配置合适时间
(2)服务端:优化处理时间长的接口,将时间控制在客户端超时上限内