当前位置:  开发笔记 > 后端 > 正文

Netty客户端限制了队列丢弃策略

如何解决《Netty客户端限制了队列丢弃策略》经验,为你挑选了1个好方法。

遇到连接到第三方服务器的OutMemoryError,它无法足够快地处理请求.

尝试使用有界队列和丢弃策略(ThreadPoolExecutor.DiscardPolicy)传递NioClientSocketChannelFactory以执行服务器,但仍然得到OutOfMemoryError.

我错过了什么?

谢谢



1> trustin..:

如果您的客户端Netty通道的写缓冲区已满,并且服务器没有足够快地读取它,您将OutOfMemoryError在客户端看到.为了避免这种情况,你必须在Channel.isWritable()返回时停止写作false.channelInterestOpsChangedChannel.writable' changes. Then, you can check again ifChannel.isWritable()的状态为returns真时,您将收到有关事件的通知并继续写入.

如果可以丢弃待处理的数据,我就不会Channel.write()Channel.isWritable()返回时调用false.

您可以使用Channel.writable提供的水印属性配置属性更改的时间NioSocketChannelConfig.另外,请查看使用此技术的'discard'示例.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有