Maison > Article > Opération et maintenance > qu'est-ce que la collecte de données Apache Kafka
Qu'est-ce que la collecte de données Apache Kafka ?
Apache Kafka - Introduction
Apache Kafka est né sur LinkedIn et est ensuite devenu un projet Apache open source en 2011, puis est devenu un projet de premier ordre dans Apache en 2012. Kafka est écrit en Scala et Java. Apache Kafka est un système de messagerie tolérant aux pannes basé sur la publication et l'abonnement. Il est rapide, évolutif et distribué de par sa conception.
Ce tutoriel explorera les principes, l'installation, le fonctionnement de Kafka, puis présentera le déploiement du cluster Kafka. Enfin, nous conclurons avec les applications temps réel et l'intégration avec les technologies Big Data.
Avant de poursuivre ce tutoriel, vous devez avoir une bonne compréhension de Java, Scala, des systèmes de messagerie distribués et de l'environnement Linux.
Dans le big data, une grande quantité de données est utilisée. Concernant les données, nous sommes confrontés à deux défis principaux. Le premier défi est de savoir comment collecter de grandes quantités de données, et le deuxième défi consiste à analyser les données collectées. Pour surmonter ces défis, vous avez besoin d’un système de messagerie.
Kafka est conçu pour les systèmes distribués à haut débit. Kafka a tendance à bien fonctionner comme alternative aux courtiers de messagerie plus traditionnels. Comparé à 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 le rend idéal pour les applications de traitement de messages à grande échelle.
Qu'est-ce qu'un système de messagerie ?
Le système de messagerie s'occupe du transfert des données d'une application à une autre, afin que les applications puissent se concentrer sur les données mais ne pas se soucier de la façon de les partager. La messagerie distribuée est basée sur le concept de files d'attente de messages fiables. Les messages sont mis en file d'attente de manière asynchrone entre l'application client 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 suivent le pub-sub.
Système de messages peer-to-peer
Dans un système peer-to-peer, les messages resteront dans les files d'attente. Un ou plusieurs consommateurs peuvent consommer les messages de la file d'attente, mais un message spécifique ne peut être consommé que par un seul consommateur au maximum. Une fois qu'un consommateur lit un message dans une file d'attente, il disparaît de la file d'attente. Un exemple typique de ce système est un système de traitement des commandes, dans lequel chaque commande sera traitée par un seul processeur de commandes, mais plusieurs processeurs de commandes peuvent travailler simultanément. Le diagramme ci-dessous représente la structure.
Système de messagerie de publication-abonnement
Dans un système de publication-abonnement, les messages resteront dans des sujets. Contrairement aux systèmes peer-to-peer, un consommateur peut s'abonner à un ou plusieurs sujets et consulter tous les messages de ce sujet. Dans le système de publication-abonnement, le générateur de messages est appelé l'éditeur et le consommateur du message est appelé l'abonné. Un exemple concret est Dish TV, qui publie différentes chaînes comme le sport, les films, la musique, etc. N'importe qui peut s'abonner à ses propres chaînes et obtenir ses chaînes par abonnement.
Qu'est-ce que Kafka ?
Apache Kafka est un système de messagerie de publication-abonnement distribué et une file d'attente puissante qui peut gérer de grandes quantités de données et vous permet de transmettre des messages d'un point de terminaison à un autre. Kafka convient à la consommation de messages hors ligne et en ligne. Les messages Kafka sont conservés sur le disque et répliqués au sein du cluster pour éviter la perte de données. Kafka est construit sur le service de synchronisation ZooKeeper. Il s'intègre parfaitement à Apache Storm et Spark pour diffuser l'analyse des données en temps réel.
Avantages Voici quelques avantages de Kafka -
Fiabilité - Kafka est distribué, partitionné, répliqué et tolérant aux pannes.
Évolutivité – Le système de messagerie Kafka évolue facilement, sans temps d'arrêt.
Durabilité - Kafka utilise un journal de validation distribué, ce qui signifie que les messages restent sur le disque le plus rapidement possible, ce qui le rend durable.
Performances : Kafka offre un débit élevé pour les messages de publication et d'abonnement. Il maintient des performances stables même lorsque plusieurs téraoctets de messages sont stockés.
Kafka est très rapide, garantissant zéro temps d'arrêt et zéro perte de données.
Cas d'utilisation
Kafka peut être utilisé pour de nombreux cas d'utilisation. Certains d'entre eux sont répertoriés ci-dessous -
Métriques - Kafka est souvent utilisé pour exécuter des données de surveillance. Cela implique l'agrégation des statistiques des applications distribuées pour produire un flux centralisé de données opérationnelles.
Solution d'agrégation de journaux : Kafka peut être utilisé dans une organisation pour collecter les journaux de plusieurs services et les transmettre à plusieurs serveurs dans un format standard.
Streaming - Frameworks populaires comme Storm et Spark
Le streaming lit les données d'un sujet, les traite et écrit les données traitées dans un nouveau sujet qui peut être utilisé par les utilisateurs et les applications. La forte durabilité de Kafka est également très utile dans le traitement des flux.
Kafka nécessite
Kafka est une plateforme unifiée pour traiter toutes les sources de données en temps réel. Kafka prend en charge la messagerie à faible latence et garantit la tolérance aux pannes en présence de pannes de machine. Il a la capacité de gérer un grand nombre de consommateurs différents. Kafka est très rapide, effectuant 2 millions d'écritures/seconde. Kafka conserve toutes les données sur le disque, ce qui signifie essentiellement que toutes les écritures sont transférées dans le cache des pages du système d'exploitation (RAM). Cela transfère les données du cache de page vers le socket Web de manière très efficace.
Pour plus de connaissances sur Apache, veuillez visiter la colonne Tutoriel d'utilisation d'Apache !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!