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

时间:2018-04-23 21:37:06

标签: java netty

我正在使用Netty框架并实现了客户端和服务器。我正在建立多达1000的连接。我想在多个地方配置超时值。其中一些我能够弄明白。所以,这是我的网络实施的网络行为:
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

我很困惑选择哪个选项以及哪一个更好或者还有其他选项。

1 个答案:

答案 0 :(得分:1)

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