gpt4 book ai didi

Netty客户端有界队列丢弃策略

转载 作者:行者123 更新时间:2023-12-02 18:45:49 29 4
gpt4 key购买 nike

连接到第 3 方服务器时遇到 OutMemoryError,该服务器无法足够快地处理请求。

尝试NioClientSocketChannelFactory通过有界队列和丢弃策略(ThreadPoolExecutor.DiscardPolicy)传入执行程序服务,但仍然出现OutOfMemoryError。

我错过了什么?

谢谢

最佳答案

如果客户端 Netty channel 的写入缓冲区已满,并且服务器读取速度不够快,您将看到 OutOfMemoryError在客户端。为了避免这种情况,你必须停止编写 if Channel.isWritable()返回false 。您将收到通知 channelInterestOpsChanged当状态为 Channel.writable' changes. Then, you can check again if 时发生事件Channel.isWritable() returns true`并继续写作。

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

您可以配置何时Channel.writable属性随 NioSocketChannelConfig 中提供的水印属性而变化。另外,请查看使用此技术的“丢弃”示例。

关于Netty客户端有界队列丢弃策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409763/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com