Apache Kafka est une plate-forme de streaming d'événements distribuée open source utilisée par des milliers d'entreprises pour les pipelines de données hautes performances, l'analyse en continu, l'intégration de données et les applications critiques.
Cas d'utilisation
Kafka est utile dans divers cas d’utilisation opérationnels et d’analyse de données réels.
•Messagerie : Ce domaine possède ses propres logiciels spécialisés, comme RabbitMQ et ActiveMQ, mais Kafka est souvent suffisant pour le gérer tout en offrant de grandes performances.
• Suivi de l'activité du site Web : Kafka peut gérer de petits enregistrements de données fréquemment générés, tels que les pages vues, les actions des utilisateurs et d'autres activités de navigation sur le Web.
• Métriques : vous pouvez facilement consolider et regrouper des données qui peuvent être triées à l’aide de rubriques.
• Agrégation de journaux : Kafka permet de collecter des journaux provenant de différentes sources et de les agréger en un seul endroit dans un format unique.
• Traitement de flux : les pipelines de streaming sont l’une des fonctionnalités les plus importantes de Kafka, permettant de traiter et de transformer les données en transit.
Architecture pilotée par événements : les applications peuvent publier et réagir aux événements de manière asynchrone, ce qui permet aux événements d'une partie de votre système de déclencher facilement un comportement ailleurs. Par exemple, l'achat d'un article par un client dans votre magasin peut déclencher des mises à jour de stock, des avis d'expédition, etc.
Composants architecturaux
Voici les composants de haut niveau les plus essentiels de Kafka :
Producteur d'enregistrements
Consommateur
Courtier
Sujet
Partitionnement
Réplication
ZooKeeper ou Contrôleur Quorum
1.Enregistrement.
Également appelé événement ou message, un enregistrement est un tableau d'octets pouvant stocker n'importe quel objet, quel que soit son format. Par exemple, un enregistrement JSON décrivant le lien sur lequel un utilisateur a cliqué sur votre site web.
Il est parfois nécessaire de distribuer certains types d'événements à un groupe de consommateurs ; chaque événement sera donc distribué à un seul consommateur de ce groupe. Kafka permet de définir des groupes de consommateurs de cette manière.
Une approche de conception essentielle consiste à ce qu'aucune autre interconnexion n'ait lieu entre les clients, hormis les groupes de consommateurs. Les producteurs et les consommateurs sont totalement découplés et indépendants les uns des autres.
2.Producteur :
Un producteur est une application cliente qui publie des enregistrements (écritures) dans Kafka. Par exemple, un extrait de code JavaScript sur un site web suit le comportement de navigation sur le site et l'envoie au cluster Kafka.
3.Consommateur: Un consommateur est une application cliente qui s'abonne aux enregistrements de Kafka (c'est-à-dire qui les lit), par exemple une application qui reçoit des données de navigation et les charge dans une plateforme de données pour analyse.
4.Broker : un broker est un serveur qui gère les requêtes des clients producteurs et consommateurs et assure la réplication des données au sein du cluster. Autrement dit, un broker est l'une des machines physiques sur lesquelles Kafka s'exécute.
5.Sujet : un sujet est une catégorie permettant d'organiser les messages. Les producteurs envoient des messages à un sujet, tandis que les consommateurs s'abonnent aux sujets pertinents, ne voyant ainsi que les enregistrements qui les intéressent réellement.
6.Partitionnement : Le partitionnement consiste à diviser un journal de sujet en plusieurs journaux pouvant être hébergés sur des nœuds distincts du cluster Kafka. Cela permet d'éviter que des journaux de sujet soient trop volumineux pour être hébergés sur un seul nœud.
Les partitions de réplication peuvent être copiées entre plusieurs brokers afin de garantir leur sécurité en cas de panne de l'un d'eux. Ces copies sont appelées réplicas.
7.Service d'ensemble : un ensemble est un service centralisé permettant de gérer les informations de configuration, de découvrir les données et de fournir une synchronisation et une coordination distribuées. Kafka s'appuyait auparavant sur Apache ZooKeeper pour cela, mais les versions récentes ont migré vers un autre service de consensus appelé KRaft.
Tous les logiciels de streaming d'événements ne nécessitent pas l'installation d'un service Ensemble distinct. Redpanda, qui offre un streaming de données 100 % compatible avec Kafka, est prêt à l'emploi car il intègre déjà cette fonctionnalité.
Top comments (0)