Pivotal veröffentlicht Reactor Framework 1.0

Hartmut Schlosser

Das asynchrone Framework Reactor steht in der Version 1.0 bereit. Reactor wurde Mitte 2013 von Pivotal als Basis-Bibliothek für sogenannte reaktive Anwendungen vorgestellt. Gemeint sind damit Anwendungen, die dem gleichnamigen „Reactor“ Design Pattern folgen, bei dem es darum geht, nebenläufige Service Requests über einen Service Handler zu bündeln (demultiplex) und synchron an die jeweiligen Request Handler weiterzuleiten. Auf diese Weise sollen auch große Datenmengen (Big Data) schnell verarbeitet werden können, ohne in die „Callback Hölle“ verschachtelter Aufrufe in nebenläufigen Prozessen zu geraten.

Reactor-Entwickler Jon Brisbin erläutert auf dem Spring-io-Blog, dass auch Elemente aus dem Aktoren-Modell und aus der traditionellen, Event-basierten Callback-Programmierung in das Reactor Framework eingeflossen sind. Im Ergebnis werden Abstraktionen geboten, um Daten-intensive, latenzarme Anwendungen auf der JVM zu bauen – und das ausdrücklich nicht nur im Spring-Kontext, da die Core Libraries nur externe Abhängigkeiten zu SLF4J und der LMAX Disruptor RingBuffer Library aufweisen.

 Vor allem schnell soll Reactor sein, 10-15 Millionen Events pro Sekunde auf Standard-Hardware, schreibt Brisbin. Groovy wird als Programmiersprache unterstützt, das Reactor API ist auch problemlos um andere JVM-Sprachen erweiterbar. Auch für die Lambda-Ausdrücke aus Java 8 ist Reactor schon gerüstet. Mit einigen Code-Beispielen demonstriert Jon Brisbin die Funktionsweise von Reactor auf dem Blog.   

Das Reactor Framework ist – wie im Spring-Kontext üblich –  quelloffen unter der Apache-2-Lizenz verfügbar. Die Sourcen liegen auf GitHub bereit, ebenso wie eine Quickstart-Anwendung und andere Code-Samples. Für den Einstieg in Reactor sei noch der JAXenter-Artikel von Eberhard Wolff empfohlen. Dort schreibt Wolff als Fazit:

Reactor ist eine Basis-Technologie. Daher ist vor allem die Integration in andere Projekte spannend. Beispielsweise soll neben der Integration in Spring Integration, Spring Batch und Spring XD auch ein Event-System in Grails implementiert werden, das auf Reactor basiert. Weitere Anwendungen sind schon sichtbar: So entsteht gerade eine Unterstützung für LogBack und TCP Verbindungen. Ebenso wird daran gearbeitet, eine Spring-Integration für Reactor bereitzustellen.

 

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.