Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netty 如果客户端读取数据,而应用程序继续写入,则什么是净关闭通道策略?_Netty_Backpressure - Fatal编程技术网

Netty 如果客户端读取数据,而应用程序继续写入,则什么是净关闭通道策略?

Netty 如果客户端读取数据,而应用程序继续写入,则什么是净关闭通道策略?,netty,backpressure,Netty,Backpressure,我的应用程序使用Netty 4.x和TCP套接字将相同的数据分发给多个客户端。我希望我的应用程序能够容忍一些客户端在接收数据时出现停顿,但如果客户端速度太慢,我希望我的应用程序放弃(关闭)连接 如果我理解正确,我可以通过配置适当的: sendBufferSize(在底层操作系统允许的范围内) ChannelOption.写入缓冲区高水位标记 NettyChannel.write()写入ChannelOutboundBuffer。ChannelOutputBuffers的内容写入NIO Soc

我的应用程序使用Netty 4.x和TCP套接字将相同的数据分发给多个客户端。我希望我的应用程序能够容忍一些客户端在接收数据时出现停顿,但如果客户端速度太慢,我希望我的应用程序放弃(关闭)连接

如果我理解正确,我可以通过配置适当的:

  • sendBufferSize(在底层操作系统允许的范围内)
  • ChannelOption.写入缓冲区高水位标记
Netty
Channel.write()
写入
ChannelOutboundBuffer
ChannelOutputBuffers
的内容写入NIO SocketChannel。操作系统通过TCP向客户端发送数据

如果客户端未按时读取其套接字,则操作系统套接字
sendBuffer
将填满,然后
ChannelOutboundBuffer
将填满,直到达到
WRITE\u BUFFER\u HIGH\u WATER\u标记。接下来,通道将进入不可写入状态(以避免内存不足)

在这种情况下,净关闭渠道政策是什么?如果处理程序在通道不可写的情况下仍对其进行写入,Netty会关闭通道吗


提前感谢您的建议。

Netty的政策是通知您,并在频道重新可写后重试。否则,什么是正确的操作取决于用户。例如关闭连接或停止阅读等。

我注意到一些连接关闭,我认为Netty关闭了它们。在那种情况下,是另一回事。谢谢你为我澄清。