3

当我的 netty 服务器未加载时,一切正常。但是在负载下它开始失败。目前我正在使用所有默认设置(没有设置任何选项)。请建议我是否需要设置任何选项来处理 2k+ 并发连接(在加载期间可能会非常频繁地关闭和打开)

这是 netty 3.2.7 的堆栈跟踪。我升级到 netty 3.3.1 ,但仍然失败。

2012-09-19 16:17:54,864 新的 I/O 服务器工作者 #1-11 调试 org.jboss.netty.handler.ssl.SslHandler 42 在写入非应用程序数据 java.nio.channels.ClosedChannelException 时吞下异常: null at org.jboss.netty.channel.socket.nio.NioWorker.cleanUpWriteBuffer(NioWorker.java:645) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.channel.socket。 nio.NioWorker.writeFromUserCode(NioWorker.java:372) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:137) ~ [netty-3.2.7.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:76) ~[netty-3.2.7.Final.jar:na]在 org.jboss.netty.channel.Channels.write(Channels.java:632) ~[netty-3.2.7.Final.jar:na] 在 org.jboss。netty.channel.Channels.write(Channels.java:593) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.handler.ssl.SslHandler.wrapNonAppData(SslHandler.java:831) ~ [netty-3.2.7.Final.jar:na] at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:915) ~[netty-3.2.7.Final.jar:na] at org .jboss.netty.handler.ssl.SslHandler.wrapNonAppData(SslHandler.java:849) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler. java:915) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:620) ~[netty-3.2.7.Final.jar :na] 在 org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:282) ~[netty-3.2.7.Final.jar:na] 在 org.jboss.netty.handler.codec .frame.FrameDecoder.messageReceived(FrameDecoder.java:216) ~[netty-3.2.7.Final.jar:na] 在 org.jboss。netty.channel.Channels.fireMessageReceived(Channels.java:274) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) ~[netty -3.2.7.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351) ~[netty-3.2.7.Final.jar:na] at org .jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282) ~[netty-3.2.7.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker。运行(NioWorker.java:202)~[netty-3.2.7.Final.jar:na] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26] at java.util。 concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]na] 在 org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) ~[netty-3.2.7.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioWorker。在 org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys 上读取(NioWorker.java:351)~[netty-3.2.7.Final.jar:na](NioWorker.java:282)~[netty-3.2 .7.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) ~[netty-3.2.7.Final.jar:na] at java.util .concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run (来源不明)[na:1.6.0_26]na] 在 org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) ~[netty-3.2.7.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioWorker。在 org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys 上读取(NioWorker.java:351)~[netty-3.2.7.Final.jar:na](NioWorker.java:282)~[netty-3.2 .7.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) ~[netty-3.2.7.Final.jar:na] at java.util .concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run (来源不明)[na:1.6.0_26]2.7.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282) ~[netty-3.2.7.Final.jar:na] 在 org.jboss。 netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) ~[netty-3.2.7.Final.jar:na] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na :1.6.0_26] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]2.7.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282) ~[netty-3.2.7.Final.jar:na] 在 org.jboss。 netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) ~[netty-3.2.7.Final.jar:na] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na :1.6.0_26] 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26] at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]

4

2 回答 2

1

我相信这个问题可能是由netty中的一个错误引起的。我在这里创建了一个可重现的测试用例,并且该错误现在已修复在netty的3 分支上。

于 2012-12-19T23:25:10.900 回答
0

ClosedChannelException表示您继续使用自己关闭的频道。请注意,它并不指受对等方影响的连接状态:即,它并不暗示对等方已关闭连接。您已关闭此频道。

于 2012-09-24T11:10:36.173 回答