Netzwerkapplikationsentwicklung mit Netty

Netzwerkapplikationsentwicklung mit Netty


Nach langer Entwicklungszeit scheint die Veröffentlichung von Netty 4 nahe. Doch warum sollte man auf Netty 4 aufsetzen wenn doch Netty 3 für seine Verwendungszwecke in der Vergangenheit gute Dienste verrichtet hatte?

Nachdem in den letzten Artikeln der Netty-Reihe [1] verschiedenste Anwendungsszenarien beleuchtet wurden, widmet sich der letzte Artikel der Netty-Serie dem anstehendem „Major-Release“ von Netty 4.0.0.Final und den hierdurch entstandenen Änderungen. Zum Zeitpunkt des Artikels wurde die wohl letzte Alphaversion von Netty 4.0.0 veröffentlicht. Somit kann davon ausgegangen werden, dass das Final-Release in Kürze folgen wird. Netty kann wie immer entweder auf der Projektwebseite [2] oder via Maven heruntergeladen werden.

Artikelserie

Teil 1: Entwicklung von Netzwerkapplikationen

Teil 2: Mit Netty WebSockets unterstützen

Teil 3: Netty via SPDY

Teil 4: Next Major here we come: Neues in Netty 4.0.0

Netty 4 beherbergt eine Vielzahl von Änderungen zur vorherigen 3.x-Serie, wobei einige schwerer ins Gewicht fallen als andere. Im Folgenden werden die einzelnen Änderungen vorgestellt bzw. beleuchtet. Hierbei beschränkt sich der Artikel auf die „wichtigsten“ Änderungen. Wer einen Überblick über alle Features erhalten will, sollte ihn durch den Blick auf Nettys Bug-Tracker erhalten.

Mit der Veröffentlichung von Netty 4.0.0 wird das Projekt nun in mehreren einzelnen Libraries (Module) zur Verfügung gestellt. Hierdurch erhofft man sich, dass es in Zukunft für die Benutzer einfacher wird, nur spezifische Teile von Netty zu verwenden. Des Weiteren wird es hierdurch einfacher, neue Funktionen/Features einzuführen, ohne den „Kern“ von Netty zu beeinträchtigen.

ChannelHandler: was hat sich geändert?

Wie auch in Netty 3.x wird in 4.x ein ChannelHandler implementiert, um die Businesslogik abzubilden. Hier hat sich vom Konzept nichts geändert, doch der Schein trügt. Zwar hat sich der Grundgedanke nicht geändert, jedoch die Art und Weise wie ein solcher ChannelHandler aussieht schon. In früheren Versionen von Netty war alles Event-gesteuert. Dies hatte zur Folge, dass jede I/O-Operation die Erzeugung eines ChannelEvents zur Folge hatte. Des Weiteren wurde für jede Schreibe- und Leseoperation ein ChannelBuffer erzeugt, der als „Container“ der Daten verwendet wurde. Durch das hier beschriebene Design wurde der Kern von Netty relativ einfach gehalten. Leider brachte es einige Probleme mit sich:

  • GC-Pressure: Durch das Allozieren von vielen Objekten in kurzer Zeit wur...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang