Artikel

Kafka Streams zur Senkung der Betriebskosten verwenden

Jason McClellan

Jason McClellan

Aktualisiert Oktober 10, 2025
4 Minuten

Immer mehr Unternehmen müssen große Mengen an Daten verarbeiten schneller oder in Echtzeit zu verarbeiten. Stream-orientierte Architekturen erweisen sich dabei als der beste Ansatz. Big Data-Anwender wie Netflix, Uber und Twitter verlassen sich auf die beliebte  Apache Kafka Open-Source-Plattform für verteiltes Ereignis-Streaming, die Berichten zufolge von mehr als 80 % aller Fortune-100-Unternehmen übernommen und implementiert wurde. Obwohl mit Kafka eine hochleistungsfähige Stream-Verarbeitung möglich ist, verbessert und vereinfacht Kafka Streams diesen Prozess. Schauen wir uns Kafka Streams genauer an, um besser zu verstehen, was es ist und wie seine Implementierung die Betriebskosten senken kann.

Was ist Kafka Streams?

Streams feierte sein Debüt 2016 als neue Funktion in Kafka v0.10. Kafka-Streams ist im Wesentlichen eine Client-Bibliothek zum Erstellen von Anwendungen und Microservices, die in Kafka gespeicherte Daten verarbeiten und analysieren. Die gesamte Stream-Verarbeitung findet innerhalb der App statt, und es können mehrere Instanzen einer App ausgeführt werden, wenn ein hohes Verarbeitungsvolumen erforderlich ist.

Die Erweiterung des Kafka-Ökosystems um Streams verbindet die grundlegende Entwicklung und Bereitstellung von standardmäßigen clientseitigen Scala- und Java-Anwendungen mit den Vorteilen der serverseitigen Cluster-Technologie von Kafka. Einige bemerkenswerte Vorteile von Kafka Streams sind:

  • Das Streaming von Daten ist elastisch und jederzeit skalierbar.
  • Verarbeitungslatenz von einer Millisekunde.
  • Große Flexibilität für die Bereitstellung auf Client-Systemen, Containern, VM, Cloud usw.
  • Kafka Streams-Anwendungen sind fehlertolerant.
  • Bietet eine genau einmalige Verarbeitungssemantik.
  • Separate Verarbeitungscluster sind nicht erforderlich.
  • Unterstützung für Windows, Mac und Linux.

Wie hilft Kafka Streams bei der Senkung der Betriebskosten?

Die vielen unglaublichen Vorteile von Streams für die Stream-Verarbeitung ermöglichen es Unternehmen auch, ihre Betriebskosten zu senken. Durch die Nutzung der serverseitigen Cluster-Technologie von Kafka sorgt Streams für einen einfachen Betrieb. Es handelt sich um eine einfache Client-Bibliothek, die zusätzliche Cluster-Manager überflüssig macht. Anstatt Zeit auf den Aufbau der Infrastruktur zu verwenden, können sich die Ingenieure so besser auf die Entwicklung von Anwendungen konzentrieren. Streams vermeidet außerdem Standardformulierungen und ermöglicht so einen sauberen, prägnanten Code, der leichter zu pflegen ist.

Kafka Streams hat eine niedrige Einstiegshürde und bietet einen einfachen Weg von der kleinen lokalen Entwicklung bis hin zur Produktion im großen Maßstab. Die einfache Integration in bestehende Anwendungen und Microservices ist nur ein weiteres Element, das Kafka Streams zu einer wertvollen Option für Anwendungsfälle jeder Größe macht.

Ein Anwendungsfall für Kafka Streams

Das Unternehmen, das hinter einer globalen Analyseplattform für vernetzte Fahrzeugdaten steht, beauftragte die Abteilung für funktionale Programmierung von Xebia mit der Unterstützung in verschiedenen Bereichen, darunter ein Streaming-Projekt. Eines der Produkte des Kunden ermöglicht es Partnern, einen Echtzeitstrom von Fahrzeugereignissen zu abonnieren. Der Kunde filtert die Ereignisse auf der Grundlage der Anforderungen des Partners (z.B. Auswahl von Ereignissen innerhalb eines bestimmten geografischen Gebiets) und streamt sie in Echtzeit an den S3-Bucket/HTTP-API/etc. des Partners. Die bestehende Spark Streaming-Implementierung des Kunden wurde schlecht gewartet, war umständlich zu implementieren und teuer im Betrieb, so dass sie ersetzt werden sollte.

Xebia trat dem Projekt bei, nachdem die Implementierung bereits begonnen hatte. Das bestehende Team hatte aufgrund mangelnder Erfahrung in verschiedenen Bereichen, darunter Scala und streamorientierte Architekturen, Schwierigkeiten. Wir investierten aktiv Zeit in die Zusammenarbeit mit den Ingenieuren des Kunden, um sie weiterzubilden. Für den Kunden war dies der erste Einsatz von Kafka Streams. Er hatte zwar bereits Kafka Connect verwendet, aber noch nie einen eigenen Connector geschrieben. Wir haben einige Zeit damit verbracht, zu untersuchen und zu überprüfen, wie Kafka Connect am besten mit unseren benutzerdefinierten Konnektoren verpackt, bereitgestellt und konfiguriert werden kann.

Als wir zu dem Projekt stießen, war die Abdeckung der Unit-Tests geringer als gewünscht und es gab nur wenige Integrationstests. Wir führten eine Reihe von End-to-End-Tests ein, die das gesamte System (Kafka Streams + Kafka Connect) überprüften, sowie Integrationstests für jede Komponente.

Da eine Neuimplementierung der Kafka Streams-App in der Produktion eine kurze Latenzspitze verursachen kann, wollte der Kunde unnötige Implementierungen und Neustarts minimieren. Aus diesem Grund musste die Konfiguration der App ohne Neustart aktualisiert werden können. Wir implementierten einen einfachen Mechanismus, der eine leere Datei auf S3 abfragte. Immer wenn sich der Zeitstempel dieser Datei änderte, lud die App alle ihre Konfigurationsdateien aus S3 neu. Alle Instanzen der App fragten dieselbe Datei ab, so dass eine Konfigurationsänderung innerhalb von Sekunden an alle Instanzen weitergegeben werden konnte.

Nachdem wir das System erfolgreich in Betrieb genommen hatten, wurden bei der letzten Überprüfung etwa 100k Ereignisse pro Sekunde an mehrere Partner übermittelt. Der Betrieb kostet etwa 1/3 so viel wie das System, das es ersetzt hat.

Fazit

Diese einfache, zu 100% quelloffene Client-Bibliothek macht es kleinen und großen Unternehmen leicht, geschäftskritische Echtzeitanwendungen und Microservices zu erstellen. Sie bietet Unternehmen, die eine kosteneffiziente Stream-Processing-Lösung suchen, enorme Flexibilität und Wert.

Die Ingenieure von Xebia sind Experten für die Entwicklung und Implementierung von Echtzeit-Datenplattformen. Wenn Sie daran interessiert sind, das Beste aus Ihren Daten herauszuholen und gleichzeitig die Betriebskosten zu minimieren,  Kontaktieren Sie uns um mehr über Kafka Streams und andere Optionen zu erfahren.

Contact

Let’s discuss how we can support your journey.