Apache Kafka (Kafka) est une plateforme open source de streaming distribué qui permet (entre autres) de développer des applications en temps réel, orientées événements. Alors, qu'est-ce que cela signifie ?
Aujourd'hui, des milliards de sources de données génèrent en permanence des flux d'enregistrements de données, y compris des flux d'événements. Un événement est un enregistrement numérique d'une action qui s'est produite et du moment où elle s'est produite. En général, un événement est une action qui entraîne une autre action dans le cadre d'un processus. Un client qui passe une commande, qui choisit un siège sur un vol ou qui soumet un formulaire d'inscription sont tous des exemples d'événements. Un événement ne doit pas nécessairement impliquer une personne : par exemple, l'indication par un thermostat connecté de la température à un moment donné est également un événement.
Ces flux offrent des possibilités pour les applications qui réagissent aux données ou aux événements en temps réel. Une plateforme de streaming permet aux développeurs de créer des applications qui consomment et traitent ces flux en continu à des vitesses extrêmement élevées, avec un haut niveau de fidélité et de précision basé sur l'ordre correct de leur apparition.
LinkedIn a développé Kafka en 2011 en tant que courtier de messages à haut débit pour son propre usage, puis a ouvert et donné Kafka à l'Apache Software Foundation (lien externe à ibm.com). Aujourd'hui, Kafka est devenue la plateforme de streaming la plus utilisée, capable d'ingérer et de traiter des milliers de milliards d'enregistrements par jour sans aucun retard de performance perceptible lorsque les volumes augmentent. Des entreprises du classement Fortune 500 telles que Target, Microsoft, AirBnB et Netflix s'appuient sur Kafka pour offrir à leurs clients des expériences en temps réel basées sur les données.
La vidéo suivante fournit des informations supplémentaires sur Kafka (9:10) :
La plateforme Kafka dispose de trois fonctionnalités principales :
Les développeurs peuvent utiliser ces fonctionnalités Kafka via quatre API :
Kafka est une plateforme distribuée : Elle fonctionne comme une grappe tolérante aux pannes et hautement disponible qui peut couvrir plusieurs serveurs, voire plusieurs centres de données. Les rubriques Kafka sont partitionnées et répliquées de telle sorte qu'elles peuvent être mises à l'échelle pour servir des volumes élevés de consommateurs simultanés sans affecter les performances. Par conséquent, selon Apache.org, « Kafka fonctionnera de la même manière, que vous disposiez de 50 Ko ou de 50 To de stockage persistant sur le serveur ».
La plateforme Kafka est principalement utilisée pour créer deux types d'application :
RabbitMQ est un courtier en messages open source très utilisé, un type de logiciel intermédiaire qui permet aux applications, aux systèmes et aux services de communiquer entre eux en traduisant les protocoles de messagerie entre eux.
Comme Kafka a été conçu comme une sorte de courtier de messages (et peut, en théorie, toujours être utilisé comme tel) et parce que RabbitMQ prend en charge un modèle de messagerie de type publication/abonnement (entre autres), Kafka et RabbitMQ sont souvent vus comme des alternatives. Mais les comparaisons ne sont pas vraiment pratiques, et elles plongent souvent dans des détails techniques qui ne servent pas à choisir entre les deux. Par exemple, les rubriques Kafka peuvent avoir plusieurs abonnés, alors que chaque message RabbitMQ ne peut en avoir qu'un seul, ou encore, les rubriques Kafka sont durables, alors que les messages RabbitMQ sont supprimés une fois consommés.
Ce qu'il faut retenir :
Kafka est fréquemment utilisé avec plusieurs autres technologies Apache dans le cadre d'une solution plus large de traitement des flux, d'architecture événementielle ou d'analyse des données volumineuses.
Apache Spark est un moteur d'analyse pour le traitement de données à grande échelle. Vous pouvez utiliser Spark pour effectuer des analyses sur les flux fournis par Apache Kafka et pour produire des applications de traitement des flux en temps réel, comme l'analyse des flux de clics mentionnée précédemment.
Apache NiFi est un système de gestion des flux de données doté d'une interface graphique de type Glisser-déposer. Comme NiFi peut fonctionner comme un producteur Kafka et un consommateur Kafka, c'est un outil idéal pour gérer les défis de flux de données que Kafka ne peut pas traiter.
Apache Flink est un moteur permettant d'effectuer des calculs sur des flux d'événements à grande échelle, avec une vitesse élevée et une faible latence. Flink peut ingérer des flux en tant que consommateur Kafka, effectuer des opérations basées sur ces flux en temps réel, et publier les résultats dans Kafka ou dans une autre application.
Apache Hadoop est un cadre logiciel distribué qui vous permet de stocker des quantités massives de données dans un cluster d'ordinateurs pour les utiliser dans l'analyse de données volumineuses, l'apprentissage automatique, l'exploration de données et d'autres applications axées sur les données qui traitent des données structurées et non structurées. Kafka est généralement utilisée pour créer un pipeline de données en temps réel vers une grappe Hadoop.
Créez, modernisez et gérez des applications en toute sécurité sur n'importe quel cloud, en toute confiance.
Qu'il s'agisse des flux de travail de votre entreprise ou de vos opérations informatiques, nous avons tout ce qu'il vous faut pour automatiser vos activités grâce à l'IA.
Connectez les applications, les services et les données avec IBM Cloud Pak for Integration, la plateforme d'intégration la plus complète du marché.