Aller au contenu
KésacoKafkaData

Késaco : Apache Kafka

Véritable couteau suisse pour la transition de vos données, découvrez Apache Kafka, un outil aux multiples facettes.

Définition d'Apache Kafka

Dans un monde où la data est de plus en plus présente, il est nécessaire d’avoir des outils adaptés qui répondent à vos besoins et peuvent évoluer avec eux.

Dans cet article, découvrez Apache Kafka, un outil aussi polyvalent que puissant.

Apache Kafka : La définition formelle

Apache Kafka est une plateforme open-source et distribuée capable de publier, stocker, traiter et souscrire à des flux d'enregistrement, le tout à très faible latence. Ces flux de données divers (logs, métriques IoT, instructions, etc.) peuvent provenir de plusieurs sources et être fournis à plusieurs destinataires.

Utilisé par la quasi-totalité des plus grandes entreprises mondiales pour sa résilience et sa haute performance, Apache Kafka couvre des besoins allant de la file d'attente de messagerie à une plateforme de streaming capable de gérer plus d'un million de messages par seconde.

D'accord mais … késaco Kafka ?

Disons simplement qu'Apache Kafka est une plateforme logicielle qui vous fournit à la fois un dépôt temporaire pour vos données ainsi qu'une autoroute pour transférer ces données de vos producteurs (producers) à vos consommateurs (consumers) en fonction de leurs centres d'intérêt (topics).

Ces producteurs (producers) vont se connecter à une instance d'Apache Kafka afin d'y stocker les données qu'ils génèrent.
Ces données seront structurées en topics (sujets) et répliquées sur plusieurs serveurs distincts.
Ensuite, les consommateurs (consumers) vont s'abonner à plusieurs topics et recevoir les informations que Kafka contient dans ces topics.

La particularité principale de Kafka est qu'un message, une fois "consommé" par un consommateur, n'est pas supprimé. Il reste disponible sur la plateforme et peut être consommé par d'autres consommateurs tant que sa durée de vie au sein de Kafka n'est pas terminée.

En bref, c’est comme si on publiait un message temporaire (disons 7 jours) sur un réseau social et que tous les abonnés à notre compte recevaient le contenu de ce message par mail.
Toute nouvelle personne qui s’abonnerait à notre page recevrait les notifications des messages passés qui ne sont pas encore expirés.

Et ... c'est tout ?

Oui ... et non. En pratique, il y a également des concepts centraux pour assurer la résilience de la plateforme et éviter les pertes de données (partitionnement, réplication, répartition de la charge entre les serveurs responsables des partitions, etc.).

Même si l'idée de départ peut sembler extrêmement simple, sa mise en œuvre se heurte aux besoins de haute performance, de parallélisation des actions, de gestion des erreurs, de coupures réseau, de duplication potentielle ou de perte de données, etc.

Conclusion

Reprenons l'exemple de notre réseau social.
Si la connexion réseau d'un producteur de contenu est mauvaise et qu'un message peine à être envoyé, que décidons-nous ?

Choisirons-nous d'envoyer le message avec ses duplicatas issus des tentatives répétées, de ne rien envoyer ou de prendre plus de temps de traitement pour assurer l'unicité du message ?

Ce choix, ainsi que beaucoup d'autres, n'est pas imposé par Apache Kafka, c'est à vous de le faire !
Apache Kafka vous offre une grande capacité d'adaptation à vos besoins.

En bref, si vous recherchez une solution alliant adaptabilité, évolutivité, fiabilité et traitement en temps réel, Apache Kafka (et son support par Confluent) est là pour révolutionner vos flux de données et vous faire entrer de plain-pied dans l'univers de la Data.

Dernier