Was ist der Unterschied zwischen Jetty und Netty?

143

Was ist der Hauptunterschied zwischen Jetty und Netty?

Netty ist Teil von Jboss, aber ist es der Standard-Webserver-Container?

Unterstützt Netty Servlets 3.0?

user646584
quelle

Antworten:

199

Jetty ist ein leichter Servlet-Container, der einfach in eine Java-Anwendung einzubetten ist. Es gibt auch einen einfach zu verwendenden Jetty-Client.

Netty ist ein asynchrones ereignisgesteuertes Netzwerkanwendungsframework. Sie können beispielsweise mithilfe des Netty-Frameworks Ihren eigenen Servlet-Container oder Ihre eigene http-Client-App schreiben.

Bearbeiten:

Ich habe vergessen zu erwähnen, dass Jetty 8 und Apache Tomcat 7 die Servlet 3.0-Spezifikation unterstützen, aber Netty nicht. Weil es kein Servlet-Container ist.

moritz
quelle
8
Jetty ist auch ein HTTP-Server. es ist gebündelt. Sowohl HTTP-Server als auch Anwendungsserver / Servlet-Container
KyelJmD
6
Ich sehe immer noch nicht die Beziehung zwischen den beiden. Ist Netty für die Logik der Transportschicht und Jetty für die Logik der Anwendungsschicht?
Sridhar Sarnobat
15
@ Sridhar-Sarnobat Ja, Netty ist für die Transportschicht vorgesehen, während Jetty speziell für http-orientierte Anwendungen vorgesehen ist. Mit Netty können Sie Ihren Nachrichtenrahmen und das Codieren / Decodieren sehr genau optimieren, während Sie mit Jetty an HTTP festhalten.
Laughing_man
1
Dies gibt nur die Slogans auf jeder Website.
Swade
49

Ich denke, mit der Zeit nimmt die Überlappung zu, da beide Projekte neue Funktionen hinzufügen.

Hier ist ein Benchmark: https://gist.github.com/dhanji/81ccc0e6652eccaf43cf

Jetty ist ein Webserver (HTTP), ähnlich wie Tomcat und dergleichen, aber leichter als die meisten Servlet-Container. Dies entspricht eher der herkömmlichen Java-Methode zum Ausführen von Serveranwendungen (Servlets, WAR-Dateien). Wie Netty ist es leicht genug, um in Java-Anwendungen eingebettet zu werden.

Netty ist ein NIO-Client- Server-Framework, das die schnelle und einfache Entwicklung von Netzwerkanwendungen wie Protokollservern und Clients ermöglicht. Es vereinfacht und rationalisiert die Netzwerkprogrammierung wie TCP- und UDP-Socket-Server erheblich. Daher konzentriert sich Netty darauf, beim Schreiben von asynchronen NIO / nicht blockierenden Netzwerkprogrammen zu helfen.

Wenn Sie viel mit Netzwerkprotokollen zu tun haben und möchten, dass diese nicht blockieren, verwenden Sie Netty (normalerweise für Fälle mit hoher Leistung). Wenn Sie einen leichten HTTP-Servlet-Container wünschen, verwenden Sie Jetty.

Christophe Roussy
quelle
18

Dies ist eine grobe Vereinfachung, die es jedoch ermöglicht, den Unterschied leicht zu verstehen:

Netty ist ein Framework zum Schreiben von TCP- Anwendungen.

Jetty ist ein Framework zum Schreiben von HTTP- Anwendungen.

Rafis Ganeev
quelle
2
Prägnant genug.
Syed Danish Ali