Netty 4.0.0 CR5 bricht Abwärtskompatibilität

Hartmut Schlosser

Netty 4.0.0 CR5 ist erschienen. Dabei handelt es sich nicht, wie man vermuten könnte, um ein kleines Maintenance Release. Im Gegenteil machen  bedeutende API-Veränderungen der Abwärtskompatibilität zu früheren Netty-Releases den Garaus.

Grund für diese Neujustierung des API ist die Tatsache, dass die jüngsten „Verbesserungen“ in Netty 4 wohl den Speicherverbrauch erhöht anstatt, wie intendiert, gesenkt haben. Auf dem Netty-Blog erklärt Trustin Lee, dass das Verhalten von Netty 4, für jede Verbindung per Default pro Handler einen Buffer zuzuweisen, verantwortlich für diese Performance-Probleme sind bzw. waren. Zudem erhöhte sich der Memory Footprint vor allem für modulare Anwendungen mit einer großen Anzahl von Handlern, die Verbindungen für relativ kurze Zeiten aufrecht erhielten.

Um dieses Problem zu beheben wurde entschieden, zur Art und Weise zurückzukehren, wie Message Events im Netty 3.x-Entwicklerungszug behandelt wurden. Keinen Unterschied zwischen MessageBuf und ByteBuf mehr, ByteBuf bekommt nicht mehr einen eigenen Handler zugewiesen. Die Typenhierarchie von ChannelHandler nimmt sich dann wie folgt aus (Bild und detaillierte Erklärung siehe Netty-Blog):

Netty

Abgesehen von diesen API-Veränderungen wurden alle „guten“ Entwicklungen des Netty-4-Zuges, wie beispielsweise das bessere Thread-Modell, beibehalten. Die Liste der kleineren und größeren Fixes gibt es in den Release Notes nachzulesen. Angepasst wurde übrigens auch bereits die Dokumentation zu Netty 4.

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.