Netty vs Nginx:基于性能、内存管理、内存占用的优点和缺点



问题:使用Nginx和Netty构建代理服务器的优点和缺点是什么。

详述问题:

我们正在尝试实现一个代理服务器(正向或反向代理),它位于服务前面,并负责处理可以应用于我们服务的良好做法。

因此,我们正在评估市场上可用的不同解决方案,主要是Nginx和Netty。因此,当我们最初对Nginx进行研究时,我们发现了大量积极的博客,这些博客表明Nginx非常快速,可以通过编写自定义模块来轻松配置Nginx。

但当我们在Netty上进行POC时,我们在使用Netty 4时获得了更好的性能数据。因此,我想知道是否有人对Nginx和Netty进行了比较,以及不使用Netty作为反向/正向代理解决方案的原因是什么。我们担心与Java Server解决方案相关的GC问题,因此在着手解决方案之前,我们想了解Nginx和Netty的优点和缺点。

谢谢,维奈。

我不知道详细的比较,因为这里没有比较苹果。Netty是一个非常低级的java框架,而nginx是一个基本上完整的代理。我不知道你在netty上为你的例子写了什么。如果不做任何测试,我想在netty上做一个比nginx更快的功能代理会很困难。

我认为,如果你想要一个简单的代理服务器,你应该使用nginx,因为它很可能具有基本代理所需的所有功能。nginx是快速和成熟的,所以它应该在基本用例中做得很好。

如果你正在寻找一个更复杂的代理,带有特殊的插件。也许像速率限制/自定义身份验证之类的事情,那么使用netty可能是值得考虑的。这些东西可以在nginx上构建,但需要使用Lua脚本。您可能更喜欢使用java作为开发人员。

如果你最终选择了netty,请记住,你可能需要重新实现后端负载平衡等复杂功能。

我使用写在netty上的负载均衡器,所以我不想让你气馁。我只想指出,一个是预先编写的优化反向代理,而另一个是你必须从头开始编写的。

我没有看到或做过任何并排的比较,但就Netty而言,经过一些仔细的编码和池直接内存缓冲区的使用,你应该不会看到太多GC活动。

最新更新