Apache Kafka introduceert versie 2.7 voor meer betrouwbaarheid

Abonneer je gratis op Techzine!

Versie 2.7 van Apache Kafka moet gebruikers meer zekerheid geven over de functionaliteit van het platform. Daarnaast moet versie 2.7 de afhankelijkheid van Apache Zookeeper verkleinen.

De nu uitgebrachte release van Apache Kafka moet volgens de ontwikkelaars de betrouwbaarheid van de functionaliteit van het platform verder vergroten. Zo is onder meer de impact van verschillende create- en delete-activiteiten op de gehele controller load aangepakt. Hiervoor zijn nu resource level quota toegevoegd die het systeem alle activiteiten die ervoor kunnen zorgen dat een overload ontstaat, weigert. Ook is er een beschermingssysteem toegevoegd dat onder andere over broker-wide en per gebruiker ‘connection creation rates’ beschikt.

Om ervoor te zorgen dat gebruikers weten dat zij een source topic uit een draaiende applicatie met Kafka Streams hebben verwijderd, geeft de bewuste applicatie nu een MissingSourceTopicException-mededeling. Dit in plaats van dat de applicatie zonder opgaaf van reden afsluit. Ook is nu aan Kafka Streams een ‘reverse state store ‘-iteratie toegevoegd, waarmee het ophalen van de laatste documenten een stukje efficiënter verloopt.

Overige wijzigingen betrouwbaarheid

Andere wijzigingen in de laatste release 2.7 van Kafka Streams die de betrouwbaarheid van het platform moeten vergroten, zijn onder meer het toevoegen van trace level end-to-end meetgegevens voor latency en verschillende beveiligingsoplossingen. Vooral deze laatste toevoegingen zijn belangrijk voor de samenwerking tussen het platform en derde partijen die hiervan afhankelijk zijn.

Vervangen van gebruik Apache ZooKeeper

Het Apache Kafka-project wil minder afhankelijk zijn van Apache ZooKeeper dependencies om het beheer van metadata meer schaalbaar te maken. Apache ZooKeeper is een centrale dienst voor gedistribueerde applicaties en zorgt onder andere voor het onderhouden van configuratie informatie, levert gedistribueerde synchronisatie en groepsdiensten.

In versie 2.7 is daarom een zogenoemde AlterIsr API toegevoegd. Deze interface moet de controller, voor statisch beheer van partities en replica’s, het exclusieve recht geeft voor het updaten van de staat van de diverse partities en in-sync replica (ISR) sets. Eerder was dit verdeeld tussen de controller en de partitie leader. Dit leidde weer tot vertragingen en incorrecte beelden van de ISR-status.

Verder moet in versie 2.7 van Apache Kafka een andere nieuwe broker-side API ervoor zorgen dat gebruikers hun SCRAM-settings kunnen veranderen. In de oude versie werd hiervoor ook Apache ZooKeeper gebruikt.

Alle oplossingen voor Apache ZooKeeper moeten er uiteindelijk toe leiden dat de hele tool wordt vervangen door een zelfbeheerd metadata quorum. Inmiddels is hiervoor al een eerste protocolimplementatie beschikbaar en kan via een stand-alone server worden getest, voordat het met de controller wordt geïntegreerd.