Netty:为每个通道的通道读取配置超时

Netty: configure timeout for channel read per channel

我正在使用 Netty 框架并实现了客户端和服务器。我正在建立高达 1000 个连接。我想在多个地方配置超时值。其中一些我能够弄清楚。所以,这是我的 netty 实现的 netty 行为:
1. 许多异步连接从客户端开始超时(使用ChannelOption.CONNECT_TIMEOUT_MILLIS配置)。
2.那些能够连接的客户端连接使用channelActive发送HTTP请求并使用channelRead0接收响应。

问题 - 我想在发送请求和接收特定通道的数据之间设置超时值。
我阅读了 netty 文档并提出了两个解决方案:
1. https://netty.io/4.0/api/io/netty/channel/ChannelConfig.html#setConnectTimeoutMillis-int-
2. https://netty.io/4.0/api/io/netty/handler/timeout/ReadTimeoutHandler.html

我很困惑该选择哪个选项,哪个选项更好,或者还有其他选项。

您将需要设置多个限制(很有可能)。正如您已经发现的那样,您可能希望通过 setConnectTimeoutMillis 设置连接超时,但也有一个 ChannelDuplexHandler 可以确保您在预期时间内收到对请求的响应。您可能还想看看 IdleStateHandler 如果 Channel 空闲时间过长,它将允许通过 ChannelPipeline 触发事件。