Les caractéristiques de Kafka sont : 1. Fournit un débit élevé pour la publication et l'abonnement ; 2. Peut effectuer des opérations de persistance et conserver les messages sur le disque, afin qu'il puisse être utilisé pour une consommation par lots ; 3. Système distribué, facile ; pour s'étendre vers l'extérieur ; 4. Prend en charge les scénarios en ligne et hors ligne.
Fonctionnalités et scénarios d'utilisation de Kafka
Kafka est un système de messagerie de publication-abonnement distribué. Il a été initialement développé par LinkedIn Corporation et est ensuite devenu une partie du projet Apache. Kafka est un service de journalisation distribué, partitionnable, redondant et persistant.
Il est principalement utilisé pour gérer les données de streaming actives. Dans les systèmes Big Data, nous rencontrons souvent un problème : l'ensemble du Big Data est composé de différents sous-systèmes. Les données doivent circuler en continu dans chaque sous-système avec des performances élevées et une faible latence.
Les systèmes de messagerie d'entreprise traditionnels ne sont pas très adaptés au traitement de données à grande échelle. Afin de gérer simultanément les applications en ligne (messages) et hors ligne (fichiers de données, journaux), Kafka est apparu. Kafka peut jouer deux rôles :
Réduire la complexité de la mise en réseau du système.
Réduit la complexité de la programmation. Chaque sous-système ne négocie plus les interfaces entre eux. Chaque sous-système est branché sur une prise comme une prise assume le rôle d'un bus de données à haut débit
Principales fonctionnalités de Kafka :
- Fournit un débit élevé pour la publication et l'abonnement. Il est entendu que Kafka peut produire environ 250 000 messages (50 Mo) par seconde et traiter 550 000 messages (110 Mo) par seconde.
- peut effectuer des opérations de persistance. Conservez les messages sur le disque afin qu'ils puissent être utilisés pour une consommation par lots, comme ETL, ainsi que pour des applications en temps réel. Empêchez la perte de données en conservant les données sur le disque dur et en les répliquant.
- Système distribué, facile à étendre vers l'extérieur. Tous les producteurs, courtiers et consommateurs en auront plusieurs, et ils sont tous distribués. Les machines peuvent être étendues sans temps d'arrêt.
- L'état du traitement des messages est conservé du côté du consommateur, et non du côté du serveur. Équilibre automatiquement en cas de panne.
- Prend en charge les scénarios en ligne et hors ligne.
Les points de conception de Kafka :
1. Utilisez directement le cache du système de fichiers Linux pour mettre efficacement en cache les données.
2. Utilisez Linux Zero-Copy pour améliorer les performances d'envoi. L'envoi de données traditionnel nécessite 4 changements de contexte.Après avoir utilisé l'appel système sendfile, les données sont échangées directement dans l'état du noyau et les changements de contexte système sont réduits à 2 fois. Selon les résultats des tests, les performances d'envoi de données peuvent être améliorées de 60 %.
3. Le coût d'accès aux données sur disque est de O(1). Kafka utilise des sujets pour la gestion des messages. Chaque sujet contient plusieurs parties (itions). Chaque partie correspond à un journal logique et est composée de plusieurs segments. Plusieurs messages sont stockés dans chaque segment (voir la figure ci-dessous). L'ID du message est déterminé par son emplacement logique, c'est-à-dire que l'ID du message peut être directement localisé à l'emplacement de stockage du message, évitant ainsi un mappage supplémentaire de l'ID à l'emplacement. Chaque partie correspond à un index dans la mémoire, et le décalage du premier message dans chaque segment est enregistré. Le message envoyé par l'éditeur à un certain sujet sera distribué uniformément en plusieurs parties (de manière aléatoire ou distribuée selon la fonction de rappel spécifiée par l'utilisateur). Le courtier reçoit le message publié et ajoute le message au dernier segment de la partie correspondante. . Lorsque Lorsque le nombre de messages sur un segment atteint la valeur configurée ou que la durée de publication des messages dépasse le seuil, les messages sur le segment seront vidés sur le disque. Seuls les abonnés aux messages vidés sur le disque peuvent s'abonner après le segment. atteint une certaine taille, il ne sera plus disponible. Les données seront à nouveau écrites dans le segment et le courtier créera un nouveau segment.
4. Distribution explicite, c'est-à-dire que tous les producteurs, courtiers et consommateurs en auront plusieurs, tous distribués. Il n'existe aucun mécanisme d'équilibrage de charge entre le producteur et le courtier. Zookeeper est utilisé pour l'équilibrage de charge entre les courtiers et les consommateurs.
Tous les courtiers et les consommateurs seront enregistrés dans zookeeper, et zookeeper enregistrera certaines de leurs métadonnées. Si un courtier ou un consommateur change, tous les autres courtiers et consommateurs en seront informés.
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!