176

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

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

Netty 是否支持 Servlets 3.0?

4

3 回答 3

220

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

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

编辑:

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

于 2011-03-22T04:21:13.230 回答
70

我认为随着时间的推移,重叠会随着两个项目添加新功能而增加。

这是一个基准: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。

于 2016-03-02T14:08:41.323 回答
60

This is crude simplification, but it allows to understand the difference easily:

Netty is a framework to write TCP and UDP applications.

Jetty is a framework to write HTTP applications.

于 2019-07-09T09:42:23.557 回答