Reaktive Programmierung mit Java und Spring 5
Klassische Webanwendungen im Java-Umfeld (imperative Programmierung) binden jeden Request an einen Thread. Sie blockieren ihn, bis der Applikations-Code abgearbeitet ist und der Aufrufer eine Response erhält. Das führt dazu, dass der Thread auf I/O-Operationen wartet (z.B. Datenbank-Anfragen) und keine weiteren Requests in dieser Zeit bearbeitet.
Bei der reaktiven Programmierung setzt man auf nicht blockierenden und ereignisgetriebenen Applikations-Code, wodurch man mit weniger Ressourcen besser skalieren kann. Hier kümmert sich die JVM um die Ressourcenvergabe, wodurch die einzelnen Threads nicht durch Wartezeit blockiert sind.
Dieser Vortrag stellt die Grundlagen sowie Vor- und Nachteile reaktiver Programmierung im Java-Umfeld vor.
Vorkenntnisse
* Grundkenntnisse in der Java-Entwicklung sowie Grundwissen über das Webframework Spring.
* Alternativ: Kenntnisse von JavaScript Promise und RxJS.
Lernziele
* Vorstellung reaktiver Programmierung
* Umsetzung reaktiver Programmierung mit Spring 5 (Reactor)
* Vergleich der Umsetzung mit Java 9 (Flow-API) und RxJava
* Vor- und Nachteile der reaktiven Programmierung
* Entscheidungshilfe für den Einsatz reaktiver Programmierung im Enterprise-Bereich