16

当您使用 Netty 和不在具有数万个连接的应用程序中使用它时,性能有什么真正的区别吗?

4

6 回答 6

21

并非如此,使用 Netty 的一个很好的理由是提高连接的可靠性,让您编写连接的功能,而不是担心可能出错的所有细节。(通常只能通过找出困难的方式来实现)

Netty 可以帮助你扩展超过 1K 的连接。但是,如果您不需要这么多的连接,您可能会发现简单的代码性能最好。

于 2011-02-28T18:11:19.943 回答
12

正如彼得所说,并非如此。

但是,我发现 Netty 还提供了一个非常好的 API 来构建服务器。尽管 API 有一些学习曲线,但它制作精良,创建新服务器可能很简单。它在代码方面也非常有效,所以如果你有一个简单的协议和实现,你将只有很少的代码。

仅当您正在为 HTTP 以外的东西构建服务器时。如果您谈论的是 HTTP Web 应用程序,请使用经过验证的 true。Apache 用于直接的 HTML 页面,Tomcat 如果您需要 Servlet。

于 2011-02-28T20:24:07.803 回答
6

HTTP web app不一定要去apache httpd和tomcat:

  1. 检查这个这个,看看 nginx 与 apache httpd 相比有多优越
  2. 单击此处查看 Play!framework(基于 Netty)如何优于基于 Tomcat/Servlet 的框架
于 2011-06-04T06:40:41.783 回答
3

Netty 非常快,尤其是在有很多连接的情况下。

在我的经验中:

  • 它比标准的 Java IO 更具可扩展性。特别是,旧的同步 Java IO 包要求您为每个连接占用一个线程。数以万计的连接可能会成为问题!
  • 它与使用Java NIO编写自定义网络代码所获得的速度大致相同,但是直接使用 Netty 而不是沿着这条路线走要简单得多
于 2012-05-17T05:04:48.277 回答
1

Twitter 在其搜索系统中使用了 Netty:

参考:Twitter 搜索现在快 3 倍

于 2014-07-03T10:58:41.487 回答
-1

实际使用Tomcat NIO,最多可以得到16000个并发连接;请注意,那是一台机器上的并发连接。这与 Jetty 进行了比较,当他们不断给他们越来越多的内存时,Jetty 达到了 4000 的上限。( http://www.javalobby.org/java/forums/t92965.html )

并且使用像 Grails 这样内置 REST 功能的“convention over config”框架(或像 RestRPC 这样的简单插件),您可以在几秒钟内轻松构建 API、webhook 等。

我还可以使用 Spring Security 插件更好地控制谁可以通过什么 IP 访问什么 api 调用,或者如果我想要什么角色。

Netty 的局限性在于,过多的 Grails 插件可以扩展到远远超出使用 Tomcat NIO 的范围。

于 2013-10-30T14:32:06.947 回答