• Qu’est-ce que Kafka? • Fonctionnalités de Kafka • Composants de Kafka • Architecture • Installation • Comparaison avec d’autres ?(si on peut) • Conclusion Introduction Nous sommes dans le cadre des technologies big data et qui dit big data, dit données, gestion de données géantes. Qui parle de gestion de données parle de communication entre différents services ou processus ayant pour but de soit partager, stocker ou traiter les données. Cette communication est assurée par les oléoducs (pipelines) de données.
Chat Server Data pipeline Database Server
Problématique? Croissance du nombre de nodes( ordinateurs, systèmes, services. Le système de data pipelines devient de plus en plus complexe. Une application avec différents niveaux de processus, communique avec d’autres applications, un serveur de stockage, des ystèmes de sécurité, un moniteur de gestion, d’autres services, un data warehouse etc..
Quelle solution? Un système de messagerie, à distance.
C’est là qu’intervient kafka. All the producers produce messages to kafka And consumers get it from it No worry of loss of message Qu’est-ce que Kafka? • Système de messagerie distribué • Fut développé à l’origine par LinkedIn, mais devint un projet d’Apache • Rapide, Scalable, durable, tolérant, distribué • Utilisé pour gérer les flux en temps réel et collecter des données massives pour des anlyses en temps réel Quelques terminologies • Topic (sujet): ce sont des catégories ou des champs où sont publiés les enregistrements • Partition : les topics sont divisés en journaux de validation appelés partition • Consumer: toute application qui souscrit à un sujet pour en recevoir les messages. Peuvent être des processus séparés ou des machines séparées. Il peut y avoir plusieurs consumers dans un groupe de consumers. • Broker: une seule machine sur un cluster kafka • Producer: Une application qui peut publier des messages sur un sujet. Représentation cluster Kafka
Zookeeper: Maintien et gestion des metadata du
cluster kafka Fonctionnalités Kafka • Haut débit: peut supporter des centaines de mille de messages avec un modeste logiciel • Scalabilité: Pas besoin d’éteindre le système pour augmenter ou diminuer la scalabilité • Perte de données: Avec une bonne configuration Kafka garantit • Traitement de flux: Peut être utilisé avec des application de traitement de flux en temps réel comme Spark et Storm • Durabilité: Des messages persistants peuvent être stockés sur disque. • Réplication: Les messages peuvent être répliqués dans plusieurs clusters.