Jetty和Netty有什么区别?

What's the difference between Jetty and Netty?

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容器轻。这更接近于传统的Java处理服务器应用程序(servlet,WAR文件)的方式。像Netty一样,它足够轻巧,可以嵌入到Java应用程序中。

Netty is a NIO client server framework which enables quick and easy
development of network applications such as protocol servers and
clients. It greatly simplifies and streamlines network programming
such as TCP and UDP socket server.
So Netty is focusing on helping to write NIO/non-blocking, asynchronous network programs.

如果您处理大量网络协议并希望其不受阻碍,请使用Netty(通常用于高性能情况)。如果您想使用轻量级的HTTP Servlet容器,请使用Jetty。

  • 另请参阅:使用码头还是净额?
  • Netty的替代品:高性能网络的Netty替代品是什么?
  • 有关Netty的文章:http://netty.io/wiki/related-articles.html
  • 带有Netty的Servlet 3.0:http://www.jroller.com/agoubard/entry/run_servlets_with_netty#.Vtb0Teaunjs
  • Netty的Servlet桥接器:https://github.com/bigpuritz/netty-servlet-bridge

这是粗略的简化,但是可以轻松理解其中的区别:

Netty是编写TCP应用程序的框架。

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