Jetty 和 Netty 有什么区别?

Jetty 和 Netty 的主要区别是什么?

Netty 是 Jboss 的一部分,但它是默认的 Web 服务器容器吗?

Netty 支持 Servlets 3.0吗?

109869 次浏览

Jetty 是一个轻量级的 servlet 容器,易于嵌入到 Java 应用程序中,也有一个易于使用的 Jetty 客户端。

Netty 是一个异步事件驱动的网络应用程序框架。 例如,您可以在 Netty 框架的帮助下编写自己的 servlet 容器或 http 客户端应用程序。

编辑:

忘了提到 Jetty 8和 Apache Tomcat 7支持 servlet 3.0规范,但 netty 不支持。因为它不是 servlet 容器。

我认为随着时间的推移,随着两个项目添加新的特性,重叠的部分会增加。

这里有一个基准: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty 是一个 Web 服务器(HTTP) ,类似于 Tomcat 之类的,但比大多数 servlet 容器要轻。这更接近于传统的服务器应用程序(servlet、 WAR 文件)的 Java 方式。像 Netty 一样,它足够轻量级,可以嵌入到 Java 应用程序中。

Netty 是一个 NIO 客户端服务器框架,它支持快速和简单 开发网络应用程序,例如协议服务器和 它极大地简化和简化了网络编程 例如 TCP 和 UDP 套接字服务器。 所以 Netty 正致力于帮助编写 NIO/非阻塞、异步网络程序。

如果您经常处理网络协议,并希望它是非阻塞的,请使用 Netty (通常用于高性能情况)。如果需要轻量级的 HTTP servlet 容器,请使用 Jetty。

这是粗略的简化,但它让我们很容易理解其中的区别:

Netty 是一个编写 TCPUDP应用程序的框架。

Jetty 是一个编写 HTTP应用程序的框架。