Quelle est la différence entre Jetty et Netty?

144

Quelle est la principale différence entre Jetty et Netty?

Netty fait partie de Jboss, mais est-ce le conteneur de serveur Web par défaut?

Netty prend-il en charge les servlets 3.0?

user646584
la source

Réponses:

199

Jetty est un conteneur de servlet léger, facile à intégrer dans une application java, il existe également un client jetty facile à utiliser.

Netty est une infrastructure d'application réseau asynchrone basée sur les événements. Vous pouvez écrire votre propre conteneur de servlet ou application client http à l'aide du framework Netty par exemple.

Éditer:

J'ai oublié de mentionner que Jetty 8 et Apache Tomcat 7 prennent en charge la spécification du servlet 3.0, mais pas Netty. Parce que ce n'est pas un conteneur de servlet.

Moritz
la source
8
Jetty est également un serveur Http. c'est groupé. Serveur Http et serveur d'applications / conteneur de
servlets
6
Je ne vois toujours pas la relation entre les deux. Netty est-il pour la logique de couche de transport tandis que jetty est pour la logique de couche d'application?
Sridhar Sarnobat
15
@ Sridhar-Sarnobat Oui, Netty est pour la couche de transport, tandis que jetty est spécifiquement pour les applications orientées http. Avec Netty, vous pouvez optimiser le cadrage de vos messages et l'encodage / décodage de manière très précise, alors que vous êtes coincé avec HTTP avec Jetty.
rire_man
1
Cela donne juste les slogans sur chaque site Web.
swade le
50

Je pense qu'avec le temps, le chevauchement augmente à mesure que les deux projets ajoutent de nouvelles fonctionnalités.

Voici un benchmark: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty est un serveur Web (HTTP), similaire à Tomcat et autres, mais plus léger que la plupart des conteneurs de servlet. Ceci est plus proche de la manière traditionnelle Java de faire des applications serveur (servlets, fichiers WAR). Comme Netty, il est suffisamment léger pour être intégré dans des applications Java.

Netty est une infrastructure de serveur client NIO qui permet le développement rapide et facile d'applications réseau telles que les serveurs de protocole et les clients. Il simplifie et rationalise considérablement la programmation réseau telle que le serveur socket TCP et UDP. Netty se concentre donc sur l'aide à l'écriture de programmes réseau NIO / non bloquants et asynchrones.

Si vous vous occupez beaucoup des protocoles réseau et que vous voulez que ce soit non bloquant, utilisez Netty (généralement pour les cas à hautes performances). Si vous voulez un conteneur de servlet HTTP léger, utilisez Jetty.

Christophe Roussy
la source
20

C'est une simplification grossière, mais cela permet de comprendre facilement la différence:

Netty est un framework pour écrire des applications TCP .

Jetty est un framework pour écrire des applications HTTP .

Rafis Ganeev
la source
2
Assez succinct.
Syed Danish Ali