Apache Kafka - Introduction

Dans le Big Data, un énorme volume de données est utilisé. Concernant les données, nous avons deux défis principaux: le premier est de savoir comment collecter un grand volume de données et le second est d'analyser les données collectées. Pour surmonter ces défis, vous devez avoir besoin d'un système de messagerie.

Kafka est conçu pour les systèmes distribués à haut débit. Kafka a tendance à très bien fonctionner en remplacement d'un courtier de messages plus traditionnel. Par rapport à d'autres systèmes de messagerie, Kafka offre un meilleur débit, un partitionnement intégré, une réplication et une tolérance aux pannes inhérente, ce qui en fait un outil idéal pour les applications de traitement de messages à grande échelle.

Qu'est-ce qu'un système de messagerie?

Un système de messagerie est responsable du transfert des données d'une application à une autre, afin que les applications puissent se concentrer sur les données, sans se soucier de la façon de les partager. La messagerie distribuée est basée sur le concept de mise en file d'attente fiable des messages. Les messages sont mis en file d'attente de manière asynchrone entre les applications clientes et le système de messagerie. Deux types de modèles de messagerie sont disponibles: l'un est point à point et l'autre est un système de messagerie de publication-abonnement (pub-sub). La plupart des modèles de messagerie suiventpub-sub.

Système de messagerie point à point

Dans un système point à point, les messages sont conservés dans une file d'attente. Un ou plusieurs consommateurs peuvent consommer les messages de la file d'attente, mais un message particulier ne peut être consommé que par un seul consommateur au maximum. Une fois qu'un consommateur lit un message dans la file d'attente, il disparaît de cette file d'attente. L'exemple typique de ce système est un système de traitement des commandes, où chaque commande sera traitée par un seul processeur de commande, mais plusieurs processeurs de commande peuvent également fonctionner en même temps. Le diagramme suivant illustre la structure.

Système de messagerie Publish-Subscribe

Dans le système de publication-abonnement, les messages sont conservés dans une rubrique. Contrairement au système point à point, les consommateurs peuvent s'abonner à une ou plusieurs rubriques et consommer tous les messages de cette rubrique. Dans le système de publication-abonnement, les producteurs de messages sont appelés éditeurs et les consommateurs de messages sont appelés abonnés. Un exemple concret est Dish TV, qui publie différentes chaînes telles que le sport, les films, la musique, etc.

Qu'est-ce que Kafka?

Apache Kafka est un système de messagerie de publication-abonnement distribué et une file d'attente robuste qui peut gérer un volume élevé de données et vous permet de transmettre des messages d'un point de terminaison à un autre. Kafka est adapté à la consommation de messages hors ligne et en ligne. Les messages Kafka sont conservés sur le disque et répliqués dans le cluster pour éviter la perte de données. Kafka est basé sur le service de synchronisation ZooKeeper. Il s'intègre très bien avec Apache Storm et Spark pour l'analyse des données de streaming en temps réel.

Avantages

Voici quelques avantages de Kafka -

  • Reliability - Kafka est distribué, partitionné, répliqué et tolérant aux pannes.

  • Scalability - Le système de messagerie Kafka évolue facilement sans temps d'arrêt.

  • Durability- Kafka utilise le journal de validation distribué, ce qui signifie que les messages persistent sur le disque aussi rapidement que possible, donc il est durable.

  • Performance- Kafka a un débit élevé pour la publication et l'abonnement des messages. Il maintient des performances stables, même de nombreux To de messages sont stockés.

Kafka est très rapide et garantit aucun temps d'arrêt et aucune perte de données.

Cas d'utilisation

Kafka peut être utilisé dans de nombreux cas d'utilisation. Certains d'entre eux sont énumérés ci-dessous -

  • Metrics- Kafka est souvent utilisé pour les données de surveillance opérationnelle. Cela implique d'agréger les statistiques des applications distribuées pour produire des flux centralisés de données opérationnelles.

  • Log Aggregation Solution - Kafka peut être utilisé dans une organisation pour collecter les journaux de plusieurs services et les rendre disponibles dans un format standard à plusieurs consommateurs.

  • Stream Processing- Les frameworks populaires tels que Storm et Spark Streaming lisent les données d'un sujet, les traitent et écrivent les données traitées dans un nouveau sujet où ils deviennent disponibles pour les utilisateurs et les applications. La forte durabilité de Kafka est également très utile dans le contexte du traitement de flux.

Besoin de Kafka

Kafka est une plateforme unifiée pour gérer tous les flux de données en temps réel. Kafka prend en charge la livraison de messages à faible latence et garantit la tolérance aux pannes en cas de panne de la machine. Il a la capacité de traiter un grand nombre de consommateurs divers. Kafka est très rapide, effectue 2 millions d'écritures / sec. Kafka conserve toutes les données sur le disque, ce qui signifie essentiellement que toutes les écritures vont dans le cache de page du système d'exploitation (RAM). Cela rend très efficace le transfert des données du cache de page vers une socket réseau.