2min

Apache Kafka 3.0 verbetert Connect, Stream, OffsetFetch, en KRaft, en neemt afscheid van een aantal oude versies en formats.

De nieuwste release van Apache Kafka 3.0 bereidt met uitbreiding van KRaft het afscheid van ZooKeeper voor. Hoewel KRaft nog steeds in preview is, staat het het controllers en makelaars toe om snapshots te genereren, te repliceren en te laden voor de metadata-onderwerppartitie genaamd __cluster_metadata, waar Kafka Cluster clustermetadata opslaat en repliceert.

Om de uiteindelijke overstap van Zookeeper naar een stabiel KRaft soepel te laten verlopen, heeft het Kafka-team de typen metadatarecords van de tool gewijzigd en de Kafka-controller verantwoordelijk gemaakt voor het genereren van Producer-ID’s in zowel de ZooKeeper- als de KRaft-modus.

Offsets, Streams en Connect

Andere wijzigingen zijn dat het ophalen van offsets voor meerdere consumentengroepen nu wel kan in OffsetFetch API. Dat staat nu bovendien toe dat de offset en tijdstempel van het record met de hoogste tijdstempel in een partitie opgevraagd kunnen worden.

Verder bevat de TaskMetadata-interface van Kafka Streams nu drie nieuwe methoden om te controleren op commitedOffsets, endOffsets en timeCurrentIdlingStarted. Ook is de data-integratiehub Kafka Connect beter geintegreerd. Het bevat nu de optie om ofwel alle ofwel alleen de mislukte connector- en taakinstanties van een connector opnieuw te starten met een enkele aanroep.

Minder support voor oude versies

Om te voorkomen dat oude code niet meer werkt in de nieuwe versie, zijn API’s die de default grace periode van 24 uur hanteren verwijderd in Streams en vervangen door directe acceptatie of een speciaal op te geven duur. Ondersteuning voor Java 8, Scala 2.12 en MirrorMaker 1 wordt afgebouwd en zal in versie 4.0 helemaal worden verwijderd.  

Verder zijn de berichtformaten v0 en v1 afgeschaft. Compatibiliteit met die oude formats zal via conversie moeten gebeuren. Alle details staan op het blog van de Apache Software Foundation.