Jaka jest różnica między Jetty a Netty?

143

Jaka jest główna różnica między Jetty a Netty?

Netty jest częścią Jboss, ale czy jest to domyślny kontener serwera WWW?

Czy Netty obsługuje serwlety 3.0?

user646584
źródło

Odpowiedzi:

199

Jetty to lekki kontener serwletów, łatwy do osadzenia w aplikacji java, dostępny jest również łatwy w użyciu klient molo.

Netty to asynchroniczna struktura aplikacji sieciowych sterowana zdarzeniami. Możesz na przykład napisać własny kontener serwletów lub aplikację kliencką http przy pomocy struktury Netty.

Edytować:

Zapomniałem wspomnieć, że Jetty 8 i Apache Tomcat 7 obsługują specyfikację serwletu 3.0, ale Netty nie. Ponieważ nie jest to kontener serwletów.

Moritz
źródło
8
Jetty jest również serwerem HTTP. jest w pakiecie. Zarówno serwer HTTP, jak i serwer aplikacji / kontener serwletów
KyelJmD
6
Nadal nie widzę związku między nimi. Czy Netty jest logiką warstwy transportowej, a pomost jest logiką warstwy aplikacji?
Sridhar Sarnobat
15
@ Sridhar-Sarnobat Tak, Netty jest przeznaczony dla warstwy transportowej, podczas gdy molo jest przeznaczone specjalnie dla aplikacji zorientowanych na http. Dzięki Netty możesz bardzo precyzyjnie zoptymalizować kadrowanie wiadomości i kodowanie / dekodowanie, podczas gdy utkniesz z HTTP z Jetty.
laughing_man
1
To tylko podaje slogany na każdej stronie internetowej.
swade
49

Myślę, że z czasem nakładanie się zwiększa, ponieważ oba projekty dodają nowe funkcje.

Oto test porównawczy: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty to serwer WWW (HTTP) podobny do Tomcat i innych, ale lżejszy niż większość kontenerów serwletów. Jest to bliższe tradycyjnemu sposobowi tworzenia aplikacji serwerowych w Javie (serwlety, pliki WAR). Podobnie jak Netty jest wystarczająco lekki, aby można go było osadzić w aplikacjach Java.

Netty to struktura serwera klienckiego NIO , która umożliwia szybkie i łatwe tworzenie aplikacji sieciowych, takich jak serwery protokołów i klienci. Znacznie upraszcza i usprawnia programowanie sieciowe, takie jak serwer gniazd TCP i UDP. Dlatego Netty skupia się na pomocy w pisaniu NIO / nieblokujących, asynchronicznych programów sieciowych.

Jeśli dużo masz do czynienia z protokołami sieciowymi i chcesz, aby nie blokowały, użyj Netty (zwykle w przypadkach o wysokiej wydajności). Jeśli chcesz mieć lekki kontener serwletów HTTP, użyj Jetty.

Christophe Roussy
źródło
19

To prymitywne uproszczenie, ale pozwala łatwo zrozumieć różnicę:

Netty to framework do pisania aplikacji TCP .

Jetty to platforma do pisania aplikacji HTTP .

Rafis Ganeev
źródło
2
Wystarczająco zwięzłe.
Syed Danish Ali