Jetty 和 Netty 的主要区别是什么?
Netty 是 Jboss 的一部分,但它是默认的 Web 服务器容器吗?
Netty 是否支持 Servlets 3.0?
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。
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.