¿Cuál es la diferencia entre Jetty y Netty?

143

¿Cuál es la principal diferencia entre Jetty y Netty?

Netty es parte de Jboss, pero ¿es el contenedor predeterminado del servidor web?

¿Netty admite Servlets 3.0?

usuario646584
fuente

Respuestas:

199

Jetty es un contenedor de servlet liviano, fácil de insertar dentro de una aplicación Java, también hay un cliente de embarcadero fácil de usar.

Netty es un marco de aplicación de red asíncrono controlado por eventos. Puede escribir su propio contenedor de servlets o la aplicación de cliente http con la ayuda del marco Netty, por ejemplo.

Editar:

Olvidé mencionar que Jetty 8 y Apache Tomcat 7 admiten la especificación del servlet 3.0, pero netty no. Porque no es un contenedor de servlet.

Moritz
fuente
8
Jetty también es un servidor Http. Está incluido. Tanto el servidor HTTP como el servidor de aplicaciones / contenedor de
servlets
66
Todavía no veo la relación entre los dos. ¿Netty es para la lógica de la capa de transporte, mientras que el embarcadero es para la lógica de la capa de aplicación?
Sridhar Sarnobat
15
@ Sridhar-Sarnobat Sí, Netty es para la capa de transporte, mientras que el embarcadero es específicamente para aplicaciones orientadas a http. Con Netty puede optimizar el encuadre de mensajes y la codificación / decodificación con mucha precisión, mientras que está atascado con HTTP con Jetty.
laughing_man
1
Esto solo da los lemas en cada sitio web.
swade
49

Creo que con el tiempo la superposición aumenta a medida que ambos proyectos agregan nuevas características.

Aquí hay un punto de referencia: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty es un servidor web (HTTP), similar a Tomcat y similares, pero más liviano que la mayoría de los contenedores de servlets. Esto está más cerca de la forma tradicional de Java de hacer aplicaciones de servidor (servlets, archivos WAR). Al igual que Netty, es lo suficientemente ligero como para integrarse en aplicaciones Java.

Netty es un marco de servidor de cliente NIO que permite el desarrollo rápido y fácil de aplicaciones de red, como servidores de protocolo y clientes. Simplifica y agiliza enormemente la programación de red como el servidor de sockets TCP y UDP. Así que Netty se está enfocando en ayudar a escribir programas de red asíncronos NIO / sin bloqueo.

Si manejas mucho los protocolos de red y quieres que sea sin bloqueo, usa Netty (generalmente para casos de alto rendimiento). Si desea un contenedor de servlet HTTP ligero, use Jetty.

Christophe Roussy
fuente
19

Esta es una simplificación cruda, pero permite comprender la diferencia fácilmente:

Netty es un marco para escribir aplicaciones TCP .

Jetty es un marco para escribir aplicaciones HTTP .

Rafis Ganeev
fuente
2
Lo suficientemente sucinto.
Syed Danish Ali