服務端thrift 使用非阻塞式IO報異常Got an IOException in internalRead!

參考:https://blog.csdn.net/z13192905903/article/details/103181204

參考:https://blog.csdn.net/xmtblog/article/details/79431748

報錯

Got an IOException in internalRead!

全文


2020-04-26 11:54:31.934  WARN 21088 --- [       Thread-4] .s.AbstractNonblockingServer$FrameBuffer : Got an IOException in internalRead!

java.io.IOException: Connection reset by peer
	at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_181]
	at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.8.0_181]
	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_181]
	at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.8.0_181]
	at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~[na:1.8.0_181]
	at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:141) ~[libthrift-0.10.0.jar!/:0.10.0]
	at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.internalRead(AbstractNonblockingServer.java:539) [libthrift-0.10.0.jar!/:0.10.0]
	at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:338) [libthrift-0.10.0.jar!/:0.10.0]
	at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:203) [libthrift-0.10.0.jar!/:0.10.0]
	at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:203) [libthrift-0.10.0.jar!/:0.10.0]
	at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:154) [libthrift-0.10.0.jar!/:0.10.0]

1、服務端修改最大讀取的緩存大小,默認值非常大,實際上並不需要那麼大

# args爲Args後的實例,以下表示10M
args.maxReadBufferBytes = 10 * 1024 *1024L;

2、客戶端的transport爲null的時候調用也會出問題,如果通信還沒結束不要關閉transport.close();

 

 

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