Clojure 如何在客户端速度较慢的情况下限制netty服务器?
为了防止当客户端没有正确读取数据包时服务器中出现OOME,我实现了在通道不可写入时关闭通道,假设这是由于客户端没有足够快地读取/打包数据包造成的 但是,在发送大型ish查询结果时,这也会关闭通道,可能是因为服务器试图以比通过TCP发送更快的速度写入结果。在我脑海中,我认为处理这种情况的最好方法是使用Clojure 如何在客户端速度较慢的情况下限制netty服务器?,clojure,netty,riemann,Clojure,Netty,Riemann,为了防止当客户端没有正确读取数据包时服务器中出现OOME,我实现了在通道不可写入时关闭通道,假设这是由于客户端没有足够快地读取/打包数据包造成的 但是,在发送大型ish查询结果时,这也会关闭通道,可能是因为服务器试图以比通过TCP发送更快的速度写入结果。在我脑海中,我认为处理这种情况的最好方法是使用 netty中是否有一些已知的标准模式可以处理这种情况?基本上,您会停止写入一次通道。isWritable()返回false,然后在返回true后重新开始。您可以通过覆盖ChannelInboundH
netty中是否有一些已知的标准模式可以处理这种情况?基本上,您会停止写入一次
通道。isWritable()
返回false,然后在返回true后重新开始。您可以通过覆盖ChannelInboundHandler收到更新通知。channelWritabilityChanged(…)看起来这个问题是相关的:感谢您的建议,这是我的想法,但在这种特殊情况下,这似乎相当复杂,因为我需要处理一些逻辑,以了解哪些类型的响应没有被编写出来。有没有办法放弃输出缓冲区中的响应?最后,恐怕我想做的事情没有切实可行的解决办法。。。