gpt4 book ai didi

java - 这是 Netty 从封闭 channel 读取数据的示例吗?

转载 作者:行者123 更新时间:2023-11-30 01:45:15 25 4
gpt4 key购买 nike

我正在通过使用大量并发 GET 请求对一个基于 Netty 的项目进行负载测试。

在重负载下,我得到了很多这样的例子:

WARNING: An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.io.IOException: Connection reset by peer
at java.base/sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at java.base/sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at java.base/sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:276)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:233)
at java.base/sun.nio.ch.IOUtil.read(IOUtil.java:223)
at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:358)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:247)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1147)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:347)
[snip]

据我了解,错误消息告诉我管道的最后一个元素未处理此 IOException。我有兴趣从一开始就防止错误。

我是否正确地推断这意味着 Netty 出于某种原因试图从封闭的 channel 读取?这是否意味着我的负载测试工具在 Netty 尝试从中读取数据时关闭了它写入请求 header 等内容的套接字,因此 Netty 抛出此异常?

鉴于我仅在重负载下看到此情况,这是否意味着(例如)我的事件循环太忙而无法在负载测试工具“调用”时实际“接听电话”?如果是这样,为什么它要尝试从 channel 中读取数据?

最佳答案

在实践中没有办法不发生这种情况,因为它只是告诉您远程对等点未正常关闭连接。如果您不感兴趣,您应该忽略该异常并拆除 Channel

关于java - 这是 Netty 从封闭 channel 读取数据的示例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58274091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com