Java 在netty中iswritable为false后,如何处理新请求?
为了防止oom,我应该控制iswrite何时为false。那么,下面哪种解决方案是最好的呢 (一) 是否在iswritable为false后删除请求 (二) 阻止IO(工作线程)线程通过while(iswritable==false) (三) 写入db/log,然后在空闲时间处理它们? (此解决方案可能不适合我,因为我需要低延迟)Java 在netty中iswritable为false后,如何处理新请求?,java,netty,Java,Netty,为了防止oom,我应该控制iswrite何时为false。那么,下面哪种解决方案是最好的呢 (一) 是否在iswritable为false后删除请求 (二) 阻止IO(工作线程)线程通过while(iswritable==false) (三) 写入db/log,然后在空闲时间处理它们? (此解决方案可能不适合我,因为我需要低延迟) 3ks您应该在ChannelInboundHandler实现中使用channelwriteabilitychanged方法,如下所示: 请参阅DiscardClie
3ks您应该在
ChannelInboundHandler
实现中使用channelwriteabilitychanged
方法,如下所示:
- 请参阅DiscardClientHandler中的一个示例(在服务器端也是如此)(您不必使用trafficshapping)
- 参见API手册
channelWritabilityChanged
的事件继续写入需要发送的内容
请注意,如果发送文件或区块项目,可以在管道中使用
ChunkedWriteHandler
,然后使用对象来写入,以扩展ChunkedInput
类(请参见API).您应该在ChannelInboundHandler
实现中使用channelwriteabilitychanged
方法,如下所示:
- 请参阅DiscardClientHandler中的一个示例(在服务器端也是如此)(您不必使用trafficshapping)
- 参见API手册
channelWritabilityChanged
的事件继续写入需要发送的内容
请注意,如果发送文件或区块项目,则可以在管道中使用ChunkedWriteHandler
,然后使用对象来写入,以扩展ChunkedInput
类(请参见API)