遇到连接到第三方服务器的OutMemoryError,它无法足够快地处理请求.
尝试使用有界队列和丢弃策略(ThreadPoolExecutor.DiscardPolicy)传递NioClientSocketChannelFactory以执行服务器,但仍然得到OutOfMemoryError.
我错过了什么?
谢谢
如果您的客户端Netty通道的写缓冲区已满,并且服务器没有足够快地读取它,您将OutOfMemoryError在客户端看到.为了避免这种情况,你必须在Channel.isWritable()返回时停止写作false.channelInterestOpsChanged当Channel.writable' changes. Then, you can check again ifChannel.isWritable()的状态为returns真时,您将收到有关事件的通知并继续写入.
如果可以丢弃待处理的数据,我就不会Channel.write()在Channel.isWritable()返回时调用false.
您可以使用Channel.writable提供的水印属性配置属性更改的时间NioSocketChannelConfig.另外,请查看使用此技术的'discard'示例.
| 归档时间: |
|
| 查看次数: |
1054 次 |
| 最近记录: |