In einem früheren Blogpost haben wir bereits die wichtigsten Funktionen und Migrationsmöglichkeiten für den Umstieg auf Kafka KRaft Mode beleuchtet. Die Kafka-Community hat nun einen wichtigen Meilenstein erreicht: Mit dem Release von Apache Kafka 4.0 ist ZooKeeper offiziell Geschichte. Über ein Jahrzehnt lang war ZooKeeper ein essenzieller (und nicht selten mühsamer) Bestandteil von Kafka-Produktivumgebungen. Neu übernimmt KRaft (Kafka Raft), das eingebaute Konsensverfahren von Kafka, vollständig die Kontrolle – und zwar als einziger Betriebsmodus.
Tschüss ZooKeeper
Lange Zeit verwaltete ZooKeeper die Metadaten von Kafka – darunter Broker, Topics, Partitionen und Konfigurationen. Das brachte jedoch einiges an Betriebskomplexität mit sich: ein separates Cluster, zusätzliche Verfügbarkeitsanforderungen und potenzielle Inkompatibilitäten bei Versionen.
Die Umstellung auf KRaft war schon länger absehbar. Der Modus wurde erstmals in Kafka 2.8 eingeführt, in Version 3.3 als produktionsreif deklariert – und ist nun in Kafka 4.0 der einzige unterstützte Betriebsmodus.
Für die Migration auf 4.0 ist es wichtig, dass man von einer Kafka-Version migriert, die sowohl ZooKeeper als auch KRaft unterstützt – siehe dazu unseren erwähnten Blogpost. Jetzt ist der richtige Zeitpunkt, um auf Kafka 4.0 mit KRaft umzustellen. Für Kafka 3.x-Versionen gibt es nur noch für eine begrenzte Zeit Support und Bugfixes.
Neue Features in Kafka 4.0
Neben dem Wegfall von ZooKeeper bringt Kafka 4.0 auch diverse spannende Neuerungen mit:
- Tiered Storage – KIP-405: Diese Funktion trennt Storage von Compute, indem Kafka-Broker alte Log-Segmente auf Remote Storage wie Amazon S3, Google Cloud Storage oder Azure Blob auslagern können. Damit wird praktisch unbegrenzte Datenaufbewahrung möglich – zu deutlich geringeren Kosten.
- Neues Consumer Group Protokoll – KIP-848: Mit KIP-848 ist ein neues, deutlich effizienteres Consumer Group Protokoll allgemein verfügbar. Es verbessert die Rebalance-Zeiten massiv, was zu geringerer Latenz und höherer Verfügbarkeit in grossen Kafka-Setups führt.
- Metadata Snapshotting – KIP-866: Kafka erstellt nun regelmässig Snapshots des Metadatenzustands. Das beschleunigt das Recovery und verkürzt die Zeit, bis ein neuer Controller einsatzbereit ist – besonders nützlich in grossen Clustern.
- Queues für Kafka (Early Access) – KIP-932: Diese neue Funktion bringt klassische Queue-Semantik nach Kafka. Mehrere Consumer können nun gemeinsam aus derselben Partition lesen – im Round-Robin-Verfahren. Das ermöglicht load-balanced Verarbeitung von Nachrichten, auch wenn die Reihenfolge keine Rolle spielt. Damit wird Kafka flexibler und kommt traditionellen Message Queues wie RabbitMQ oder ActiveMQ näher.
- Entfernen alter Client Protokoll API Versionen – KIP-896: Kafka 4.0 unterstützt weiterhin ältere Clients – allerdings ist die minimale Protokollversion jetzt 2.1. Für Clients gilt neu Java 11 als Mindestvoraussetzung, auf Broker-Seite ist es Java 17.
- Aufgeräumter Code: Mit der Entfernung des ZooKeeper-Codes ist die Kafka-Codebasis deutlich schlanker und fokussierter auf die Weiterentwicklung der KRaft-Architektur.
Weitere Details und Infos zum Release gibt’s im offiziellen Changelog.
Fazit
Kafka 4.0 ist ein grosser Schritt in Richtung einer schlankeren und besser wartbaren Architektur für verteilte Messaging-Systeme. Ohne ZooKeeper wird der Betrieb einfacher, robuster und moderner. Wer bisher mit der Migration zugewartet hat – jetzt ist der ideale Zeitpunkt dafür. Die Tools sind vorhanden, KRaft ist ausgereift, und der Migrationspfad ist klar.
Willkommen in einer ZooKeeper-freien Kafka-Welt.