Apache Kafka, c'est quoi ?

Le Framework Kafka a été développé initialement en 2011 chez LinkedIn puis mis à disposition par la fondation Apache depuis 2014. L'éditeur Confluent distribue également ce Framework en lui ajoutant des fonctionnalités intéressantes au sein de sa plateforme.

Qu'apporte le framework Kafka lancé par Apache ?

Kafka peut être défini de façon schématique comme un outil de diffusion de messages destinés à être lus par quiconque intéressé. Avec ce Framework, l'émetteur du message publie ce dernier dans un Broker sans savoir exactement qui va être intéressé par sa lecture. En plus du message originel, l'émetteur va ajouter des propriétés caractérisant ce message au moment de sa publication de façon à le typer. Chaque composant désirant lire des messages s'abonne au Broker en lui indiquant quels types de messages l'intéressent. Ainsi, dès qu'un nouveau message est publié par quiconque dans le Broker avec une typologie particulière, seuls les abonnés ayant souscrits à ce type de message seront notifiés de son arrivée, sans savoir qui l'a posté.

Kafka est donc une plateforme de distribution de messages - d'évènements, ou de logs selon la sémantique que l'on veut donner à l'information publiée - en temps réel, scalable et extrêmement fiable. Apache a constitué ce Framework afin qu'il puisse traiter des millions de messages par seconde en garantissant qu'aucun d'entre eux n'est perdu. L'ensemble des messages sont persistés sur disques dans des fichiers (principe de rétention). Leur suppression n'est effective qu'après l'écoulement d'un délai (par défaut 7 jour) ou si ces fichiers excèdent une taille donnée (1 Go par défaut). Le point essentiel est que la lecture d'un message ne le retire pas du Broker : il peut être lu à volonté par un même abonné ou généralement par plusieurs abonnés.

Apache Kafka peut à ce titre être considéré comme un système hybride entre une messagerie et une base de données.

Attachments

  • Original document
  • Permalink

Disclaimer

Pacte Novation SA published this content on 15 November 2021 and is solely responsible for the information contained therein. Distributed by Public, unedited and unaltered, on 15 November 2021 09:29:12 UTC.