Monitoring von Anwendungen mit Kafka
Kafka ist eine mächtige Plattform, die sich immer größerer Beliebtheit erfreut. Herausstechende Eigenschaften der Plattform sind:
-
Horizontale Skalierbarkeit bei gleichzeitigem Erhalt der Nachrichtenreihenfolge
-
Entkopplung von Sender und Empfänger durch die dauerhafte Speicherung der Nachrichten
-
Starke Garantien bezüglich Replizierung und Ausfallsicherheit
Um die Kerntechnologie Apache Kafka hat sich ein großes Ökosystem verschiedenster Anwendungen und Technologien entwickelt, die auf der Messaging-Middleware aufbauen und deren Stärken und Fähigkeiten nutzen. Diese Stärken und Fähigkeiten basieren auf dem Bruch mit den Paradigmen klassischer Messaging-Systeme und einer auf den Linux-Kernel maßgeschneiderten Architektur:
-
Logbasiert: Unveränderliche, dauerhaft gespeicherte Datenströme mit wahlfreiem Zugriff der Consumer
-
Konsequente Umsetzung des Prinzips Dumb Pipeline: Die Broker kennen die Producer und Consumer nicht
-
Minimierung der I/O-Zugriffe durch Ausnutzung des Page-Caches und weiterer Linux-Features
Da die Architektur von Kafka in vielen spielentscheidenden Punkten von der Architektur klassischer Messaging-Middleware abweicht, ist für das Monitoring einer auf Kafka basierenden Anwendung ein fundiertes Grundwissen über diese Besonderheiten unerlässlich. Wir haben uns daher vorgenommen, in einer Serie von Blogartikeln einen Überblick über die wichtigsten Aspekte beim Monitoring auf Kafka basierender Anwendungen zu geben. Dabei möchten wir "die wichtigsten" Metriken nicht nur auflisten, wie bereits in zahlreichen anderen Quellen zu dem Thema geschehen. Vielmehr soll der Zusammenhang der einzelnen Metriken zu den architektonischen Besonderheiten von Apache Kafka dargestellt werden, um die Bedeutung der gemessenen Werte greifbar zu machen und so eine fundierte Bewertung der Messdaten für den Betrieb zu ermöglichen.
Der 1. Teil der Artikel-Serie wird einen Überblick über die Architektur von Kafka geben.
Die folgenden Artikel aus dieser Serie werden sich dann mit dem Monitoring der einzelnen Komponenten einer auf Kafka basierenden Anwendung beschäftigen und dabei jeweils auf die zu beachtenden Besonderheiten und deren architektonische Hintergründe eingehen.
-
Teil 2: Monitoring von Kafka-Brokern
-
Teil 3: Monitoring der Clients (Producer/Consumer)
-
Teil 4: Monitoring von Zookeeper / KRaft
Zu den Themen Kafka, und Monitoring mit Prometheus & Grafana bieten wir die folgenden Schulungen an:
Außerdem bieten wir auf den individuellen Bedarf zugeschnittene Workshops und Schulungen an. Bei Bedarf unterstützen wir Sie auch durch Beratung oder Software-/Architektur-Reviews direkt bei der Entwicklung in Ihrem Projekt. Sprechen Sie uns einfach an.