Event-Streaming: Apache Kafka 3.1.0 erweitert das Fetch-Protokoll um Topic IDs

Neben zahlreichen neuen Funktionen ist das Major Release reif für Java 17 und bietet weitere Verbesserungen für den ZooKeeper-Ersatz KRaft.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen

(Bild: Asvolas / Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel

Mit der vorangegangenen Hauptversion hatte sich das von der Apache Software Foundation (ASF) verwaltete Message-Broker-Projekt Kafka von Java 8 verabschiedet. Das nun vorgelegte Major Release Apache Kafka 3.1.0 ist vollständig angepasst an Java 17, das aktuelle LTS-Release der Programmiersprache. Die neue Kafka-Version wartet darüber hinaus mit einigen zusätzlichen Funktionen auf und liefert weitere Verbesserungen und Fehlerbereinigungen für KRaft – das integrierte selbstverwaltete Metadaten-Quorum, das künftig Apache ZooKeeper ersetzen soll.

Nachdem das Kafka-Team im Frühjahr 2021 in Version 2.8 einen ersten Blick auf die Zukunft des Message Brokers ohne ZooKeeper gewährte, schreiten seither die Arbeiten an den KRaft-Metadaten und APIs kontinuierlich voran. Zahlreiche Fehler wurden bereinigt und fehlende Funktionen ergänzt, dennoch empfiehlt das Team in der Blogankündigung zu Kafka 3.1 nach wie vor, KRaft nicht im Produktivbetrieb einzusetzen. Rund um das Metadaten-Quorum gebe es noch einige "Lücken zu füllen", die vor allem sicherheitsrelevante Features wie den Salted Challenge Response Authentication Mechanism (SCRAM) oder das Konfigurieren eines KRaft-basierten Authorizers betreffen.

Die gemäß Kafka Improvement Proposal KIP-516 vorgeschlagenen Topic Identifiers lassen sich im neuen Release nun mit der Funktion FetchRequest nutzen. Die Topic-IDs sollen vor allem sicherstellen, dass sich Daten aus Topics abrufen lassen, ohne Gefahr zu laufen, mit veralteten Topics desselben Namens zu interagieren. Darüber hinaus zielt das Kafka-Team damit auf eine Verbesserung der Effizienz des Fetch-Protokolls ab. Dank der TopicIDs müssen für Kafka RPCs (Remote Procedure Calls) nur noch uuids übertragen werden, deren Größe fix bei 16 Byte liegt, während die bisher genutzten strings je nach Topicname auch deutlich länger sein konnten.

Das für die OAuth-Authentifizierung via SASL/OAUTHBEARER ausgelegte Framework in Apache Kafka erhält in Version 3.1 den in in KIP-768 formulierten Support für OpenID Connect (OIDC). Die integrierte Implementierung sei reif für den Produktiveinsatz und eröffne Kafka die Anbindung an OpenID Identity Provider wie Okta, Auth0 oder Microsoft Azure zwecks Authentifizierung und Abruf von Tokens.

Neben dem für Kafka Streams seit Längerem als Standard verfügbaren, auf kooperatives Ausbalancieren ausgelegten Consumer Rebalance-Protokoll konnten Anwenderinnen und Anwender bisher bei Bedarf auch noch auf die weniger zurückhaltend agierende Protokollvariante "eager" zurückgreifen. Das Eager Rebalancing Protocol gilt ab sofort jedoch als veraltet (deprecated) und wird in einem der nächsten Kafka-Releases vollständig entfernt. Bis dahin sollten alle jene, die diese Protokollvariante noch nutzen, ihre Anwendungen auf den in Kafka 2.4 eingeführten Standard aktualisieren.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Einen umfassenden Überblick zu den wichtigsten Neuerungen im nun vorgelegten Major Release liefern der ASF-Blog, das Einführungsvideo mit Danica Fine von Confluent sowie die Release Notes zu Apache Kafka 3.1.0.

(map)