Spring Cloud Stream Fishtown 2.1 ist bereit für Spring Cloud Functions

Das Framework für ereignisgetriebene Microservices führt ein neues Programmiermodell ein, dass Spring Cloud Functions 2.0.0 nutzt.

In Pocket speichern vorlesen Druckansicht
Spring startet Projekt für Serverless Computing
Lesezeit: 3 Min.
Von
  • Matthias Parbel

Pivotal hat unter der Bezeichnung Fishtown Version 2.1.0 von Spring Cloud Stream freigegeben. Zu den wichtigsten Neuerungen des Frameworks für ereignisgetriebene Microservices zählt die Einführung eines neuen Programmiermodells, das auf Spring Cloud Functions aufsetzt. Damit steht eine Alternative zum Festlegen von Stream Handlers und Sources zur Verfügung, die sich als Bean-Elemente vom Typ Function, Consumer oder Supplier ausdrücken lassen. Das folgende Beispiel zeigt die Definition eines Message-Handlers vom Typ Function, dessen Ein- und Ausgabe an die externen Ziele gebunden sind, die durch das Bindung der Prozessor-Klasse exponiert werden.

@SpringBootApplication
@EnableBinding(Processor.class)
public class MyFunctionBootApp {

public static void main(String[] args) {
SpringApplication.run(MyFunctionBootApp.class,
"--spring.cloud.stream.function.definition=toUpperCase");
}

@Bean
public Function<String, String> toUpperCase() {
return s -> s.toUpperCase();
}
}

Das Spring-Cloud-Stream-Team hat darüber hinaus im Core die individuelle Anpassung der Message Listener Container überarbeitet. Unterstützung dafür lässt sich nun einfach durch Registrierung einer Implementierung des ListenerContainerCustomizer-Bean einrichten. Während sich der Rabbit-Binder in die neuen Version unter anderen auf Consumer Tags und Multiplex versteht, wartet der Kafka-Binder mit einer Reihe weiterer Neuerungen auf. Neben Multiplex unterstützt er außerdem multiple Consumer sowie deren Abfrage. Die neue API InteractiveQueryService ersetzt die bisherige QueryableStoreRegistry. Sie erlaubt nicht nur die Abfrage der Statusspeicher, sondern liefert auch Informationen zum Host, auf dem der Consumer läuft.

Details zu weiteren Änderungen in Spring Cloud Stream Fishtown 2.1.0 finden sich im Blogbeitrag zur Ankündigung. Das Framework steht ab sofort zum Download zur Verfügung – wahlweise über Maven Central oder das Spring Repository.

Zeitgleich mit dem Update von Spring Cloud Stream stellt Pivotal auch eine neue Version des Serverless-Projekts Spring Cloud Functions vor. Release 2.0.0 versteht sich nun auf Kotlin-Lambdas. Im ersten Schritt bedeutet das, dass Spring Cloud Functions jene Kotlin-Lambdas erkennt und als solche behandelt, die den Java-Pendants Supplier, Function oder Consumer entsprechen.

Die in Spring Cloud Functions 1.0 eingeführte Unterstützung für Microsoft Azure Functions erweitern die Macher in der aktuellen Version um ein neues Programmiermodell. Spring-Nutzern steht damit nicht nur eine vertraute Umgebung samt entsprechender Plattform-Features wie Autokonfiguration oder Dependency Injection bereit, sondern sie profitieren auch von der prinzipiellen Portierbarkeit der Businesslogik, wie sie die sonst auf Azure Functions üblichen Java Functions nicht bieten. Mehr Details zur neuen Implementierung fasst ein Blog-Beitrag zusammen.

Wie Spring Cloud Stream Fishtown steht auch Spring Cloud Functions 2.0.0 wahlweise über Maven Central oder das Spring Repository zum Download parat. Ein Überblick aller Neuerungen findet sich in der Ankündigung zum neuen Release. (map)