gpt4 book ai didi

netty - 防止 Netty 4.0.0.Alpha 中出现内存不足错误

转载 作者:行者123 更新时间:2023-12-03 03:58:31 27 4
gpt4 key购买 nike

我正在开发一个服务器应用程序,通过使用 Netty 将数据流式传输到客户端。基本上,有一个主服务器向我的应用程序提供数据,并且该应用程序将数据分发给注册用户。由于我的应用程序需要长期维护,而 Netty 3.5.8 和 Netty 4.0.0 在 API 方面有很大不同,所以我决定使用 Netty 4.0.0

但是,我遇到了一个问题,当主服务器提供太多数据时,无法足够快地分发给客户端。堆内存使用量增加并导致内存不足,因此我尝试在写入数据之前检查客户端的缓冲区,以防止出现此问题。我在网站(http://static.netty.io/4.0/xref/io/netty/example/discard/package-summary.html)中使用丢弃示例,但它不起作用,因为有时堆内存已满在调用监听器之前。我在 Netty 3.5.8 中查看这个示例,发现该示例在写入数据之前检查实际缓冲区。它与4.0.0中的示例不同,因此,我们在netty 4.0.0中是否有办法在写入之前检查缓冲区??

提前致谢。

最佳答案

我也遇到过类似的问题。我处理这个问题的方法是:

  1. 服务器写入数据时,同步调用写入第64k字节的调用。因此,调用会被阻塞,直到另一端消耗完数据。
  2. 另一端不会消费数据,直到它已经消费的数据被处理并丢弃。

始终遵循相同的模式。它可能会减慢速度,但会防止内存不足错误。速度慢不应该引起关注,因为如果值得关注,那么您的应用程序架构中(netty 之外)已经有一个需要解决的用例。

关于netty - 防止 Netty 4.0.0.Alpha 中出现内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12817930/

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