Was lange währt wird endlich gut!

Netty 4.1.0: Finales Release bringt Codecs für MQTT, SMTP und Stomp sowie Android-Unterstützung

Dominik Mohilo

© Shutterstock / cybrain

Mehr als zwei Jahre Entwicklungszeit stecken in Netty 4.1.0, das nun endlich das Beta-Stadium verlässt und Nutzern mit der Final-Version eine ganze Reihe neuer Features an die Hand gibt. In den beiden Jahren ist eine ganze Menge Arbeit in das Client-Server-Framework geflossen, etliche Bugs wurden gefixt und viele neue Protokolle werden nun unterstützt. Für Android-Entwickler gibt es ebenfalls gute Neuigkeiten.

Nach acht Beta-Versionen und sieben Release Candidates ist es nun so weit: Die Arbeit am NIO-Framework Netty, die zwei Jahre lang kontinuierlich vorangegangen ist, findet in Netty 4.1.0. Final ihren Abschluss. Wie umfangreich dieses Update ist, lässt die Tatsache erahnen, dass allein in der sechsten Beta-Version über 90 Änderungen eingepflegt wurden. Die Entwicklung von Netty 4.1.0 fand zudem neben der Weiterentwicklung der Vorgängerversion simultan statt. So kommt es, dass sämtliche Änderungen von Netty 4.0.x auch in 4.1.0 enthalten sind.

Die wichtigste Änderung dürfte wohl die Unterstützung vieler neuer Protokolle und die Implementierung neuer Codecs sein. Unterstützt werden mit der aktuellsten Version unter anderem HTTP/2, MQTT und Stomp. Außerdem wird durch den neuen DNS-Codec das (De-)kodieren von DNS-Paketen unterstützt; weitere Codecs sorgen für die problemlose Arbeit mit dem Redis-, dem SMTP– und dem Memcached-Binärprotokoll. Zu erwähnen ist, dass das SMTP-Protokoll bislang lediglich Client-seitig unterstützt wird. Ein neu eingebauter Handler sorgt für die Unterstützung von Proxies und deren Erstellung.

Änderungen, die nichts mit neuen Codecs zu tun haben, gibt es allerdings auch: So wurde der bisher als Standard genutzte ByteBufAllocator zum PooledByteBufAllocator umgewandelt. Sollte man einen UnpooledByteBufAllocator verwenden wollen, muss dies nun explizit konfiguriert werden.

Nutzer können nun auch das resolver-dns nutzen, das einen kompletten asynchronen DNS-Resolver beinhaltet. Konfiguriert werden kann dies in Bootstrap, wodurch es möglich ist, die gesamte DNS-Resolution während der Verbindung nicht-blockierend zu halten. Wie man der Ankündigung des Final Releases entnehmen kann, funktioniert dies wie folgt:

DnsAddressResolverGroup resolverGroup = new DnsAddressResolverGroup(
        NioDatagramChannel.class, DnsServerAddress.defaultAddressList());

NioEventLoopGroup group = new NioEventLoopGroup();
Bootstrap bs = new Bootstrap()
    .group(group)
    .resolver(resolverGroup)
    .handler(....);
ChannelFuture future = bs.connect(InetSocketAddress.createUnresolved("netty.io", 80));
...

In der Standardeinstellung wird weiterhin die Namensauflösung des JDKs verwendet, die – leider – blockierend ist.

Bereits in frühen Beta-Versionen von Netty 4.1.0 wurde der Android-Support eingeführt. Die Entscheidung, Android zu unterstützen, wurde aufgrund der Tatsachen gefällt, dass mobile Geräte immer wichtiger (und leistungsstärker) werden und Nutzer ganz offenkundig ihre Codecs und Handler für ihre mobilen Anwendungen wiederverwenden wollen. Außerdem seien, so die Entwickler von Netty, die schwerwiegendsten Probleme mit NIO und der SSLEngine im Android Development Kit seit Ice Cream Sandwich behoben.

Obwohl es noch keine automatisierte Test-Suite für Android gibt, wird Android ab Version 4.0 nun offiziell unterstützt.

Das plattformunabhängige Netty ist Open Source und wird von einer großen Anzahl an Projekten zur Abwicklung der asynchronen Netzwerk-Kommunikation verwendet, unter anderem von Akka, Apache Spark und dem Play Framework. Weitere Informationen zu Netty 4.1.0 gibt es in der Ankündigung zum Final Release und im Wiki von Netty.

Aufmacherbild: Networking communication technology concept von Shutterstock / Urheberrecht: cybrain

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: