Blog

Wie Sie Akka Streams oder Reactor mit Vert.X verwenden

Ruben Oostinga

Ruben Oostinga

Aktualisiert Oktober 21, 2025
2 Minuten
Mit ein paar Zeilen Code können Sie Vert.X-Streams mit einer beliebigen Reactive Streams-Implementierung verarbeiten und dabei den Gegendruck beibehalten. Die Reactive Streams-Helfer können Vert.X-Streams in die Publisher und Subscriber von Reactive Streams konvertieren. Die API ist anfangs etwas verwirrend, dieser Artikel wird sie aufklären. strömender Fluss

Warum nicht RxJava verwenden?

Es gibt eine eingebaute Unterstützung für RxJava, die die Vert.X-Kern-API erweitern kann. Die RxJava-Helfer konvertieren Vert.X-Streams in RxJava observable. Vielleicht möchten Sie Reactor verwenden, weil es von Pivotal entwickelt wurde, oder Sie bevorzugen die Akka Streams API. Sehen Sie sich diesen Vergleich zwischen Reactor und Rxjava oder diesen Vergleich zwischen Reactor und Akka Streams an. Aber selbst wenn Sie sich für RxJava entscheiden, ist es gut zu wissen, dass Vert.X mit jeder Reactive Streams-Implementierung kompatibel ist.

So verwenden Sie die Reactive Streams-Hilfsmittel

Vert.X bietet einen ReactiveWriteStream und einen ReactiveReadStream. Sie können als Pipes für die Konvertierung zwischen der Welt der Reactive Streams und der Vert.X Streams betrachtet werden. Sie können mit Hilfe eines Vert.X ReadStreams in einen ReactiveWriteStream schreiben und mit Hilfe von Reactive Streams aus ihm lesen, da er die Schnittstelle Publisher implementiert. Der ReactiveReadStream ist ein Vert.X ReadStream, der die Subscriber-Schnittstelle implementiert. Die Benennung dieser Helfer macht von der Vert.X-Seite her Sinn, aber von der Reactive Streams-Seite aus lesen Sie von einem WriteStream und schreiben in einen ReadStream. Das folgende Diagramm macht es vielleicht klarer.[caption width="1440" align="aligncenter"]Diagramm mit Reaktor und Vert.X Ereignisse aus einem Vert.X ReadStream werden durch Reactor zu einem Vert.X WritStream geleitetMit[/caption]diesem Wissen können Sie Ihre eigenen Reactive Streams Helfer erstellen. Das folgende Beispiel ermöglicht die Verarbeitung von Vert.X Streams, indem es diese durch Reactor leitet. Die Verarbeitung selbst findet in der Prozessorfunktion statt. Ein Flux der Eingabe wird als Parameter übergeben und ein Flux der Ausgabe wird zurückgegeben. [gist id="091849b8bb8d935d7343416f52d72a3e"]

Nächste Schritte

Wenn Sie noch einen Schritt weiter gehen und die Vert.X Core APIs mit einer anderen Reactive Streams-Implementierung erweitern möchten, können Sie sich ansehen, wie die Vert.X-Implementierung für RxJava funktioniert. Die meisten der Erweiterungsmethoden werden automatisch generiert. Es ist gut, dass die RxJava-Erweiterungsmethoden nicht in den Vert.X-Kern eingebettet sind. Das macht mich zuversichtlich, dass Sie es mit RxJava-Alternativen zum Laufen bringen können.

Einpacken

Die Interoperabilität, die sich aus der Reactive Streams-Spezifikation ergibt, stellt sicher, dass Sie Implementierungen mischen und anpassen können. Auch wenn Sie noch nicht umsteigen, ist es gut zu wissen, dass dies in Zukunft möglich sein wird.

Verfasst von

Ruben Oostinga

Contact

Let’s discuss how we can support your journey.