Netty处理大型有效载荷的能力

时间:2012-10-22 17:15:43

标签: java netty

我在我的开源项目中使用Apache MINA。但是,我遇到了一个性能障碍,它无法处理从移动设备上传到服务器的大型有效负载。我出现内存不足错误。我从未使用Netty,并希望将MINA与Netty交换。

我对Netty团队的问题是,Netty如何在大量传入的有效载荷下运行。在我的性能测试中,我使用1000个并发设备生成负载,每个设备发送1MB大小的有效负载。它倾向于在5分钟内生成1GIG的上传数据。这种负荷往往会打破MINA。

Netty可以支持这种负载吗?非常感谢您对此的意见。

btw:我确实使用JProfiler对应用程序进行了分析。它确实指出MINA堆栈是罪魁祸首。我甚至完全断开了我的服务器端堆栈并将其留在了消耗数据并返回数据的普通MINA服务器上。在这种模式下,即使我的后端没有真正的处理,它也会在大约15到20分钟内耗尽内存

2 个答案:

答案 0 :(得分:1)

这似乎是对库的错误使用,而不是库本身的实际问题。如果没有用户错误,IMO Netty可能会做同样的事情。在没有这个结果之前,我已经在高带宽应用中使用了MINA。可能是您的网络已经饱和,缓冲区只占用了等待上传的所有内存。只是我2¢。

答案 1 :(得分:0)

我过去曾使用Netty进行过一个项目,我们正在尝试构建一个能够通过HTTP流式传输大量数据的平台。我们没有机会在你概述的场景下加载测试Netty。当我们考虑选择哪个框架Netty时,因为它的性能和API超过了MINA和其他类似的框架。有很多网站已经完成了Netty与MINA的比较。 IMO您应该能够通过使用Direct ByteBuffers的组合来满足您的使用案例,并在读取数据时将数据写入磁盘/存储。