© GreenFlash/Shutterstock.com
Teil 1: Einführung in die Nachrichtenverarbeitung mit Spring Kafka

Frühlingsbotschaften


Apache Kafka erfreut sich als Messaging-Middleware immer größerer Beliebtheit und Verbreitung in der Entwicklercommunity. Dem trägt jetzt auch Spring Rechnung und bietet mit Spring Kafka eine sehr einfache Möglichkeit, Kafka in eine Spring-basierte Applikation zu integrieren. Zum Auftakt der Artikelserie möchten wir anhand praktischer Beispiele zeigen, wie Spring Kafka für die Entwicklung eventgestützter Microservices verwendet werden kann.

Video: Microservices mit Spring Boot, Angular 2 und Docker

Ursprünglich von LinkedIn 2011 entwickelt und veröffentlicht [1], [2], hat sich Kafka seitdem nicht nur zu einem Apache-Projekt [3], sondern auch zu einem der interessantesten Frameworks für Stream Processing und Message Brokering entwickelt. Bei Kafka handelt es sich um ein verteiltes Messagingsystem, das sich der klassischen Producer- und Consumer-Semantik bedient (Abb. 1) und den Anspruch hat, vor allen Dingen schnell, skalierbar und robust zu sein. Um diesen Anspruch zu erfüllen, besitzt Kafka besondere Eigenschaften, die wir in diesem Artikel näher vorstellen werden.

guenther_1.tif_fmt1.jpgAbb. 1: Überblick über die Systeme eines Kafka-Clusters

Das Bindeglied zwischen Producer und Consumer und somit das Herzstück von Kafka ist der Broker. Er pflegt von einem Producer generierte Nachrichten – nach Topics gruppiert – in einer verteilten und replizierten Append-only-Datenstruktur, dem Commit Log. Datensätze sind hierbei aus Sicht von Kafka als simple Byte-Arrays zu verstehen. Außer einer pro Partition eindeutigen, sequenziellen ID, auch als Offset bezeichnet, werden keine Metadaten auf Nachrichtenebene verwaltet. Eine neu eingeführte Ausnahme hierfür ist der transaktionale Modus, der mit Kafka 0.11 vorgestellt wurde. Dadurch grenzt sich Kafka nicht nur von anderen Messaginglösungen wie z. B. RabbitMQ ab, sondern erfüllt auch das Kriterium der Effizienz. Salopp gesagt ließe sich Kafka auch als ein verteiltes Dateisystem mit Spezialisierung auf die effiziente Verwaltung eines Commit Logs b...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang