Architecture Kafka

Tweet

Si vous n’êtes pas sûr de ce qu’est Kafka, voir Qu’est-ce que Kafka ?.

Architecture Kafka

Kafka se compose d’Enregistrements, de Sujets, de Consommateurs, de Producteurs, de Courtiers, de Journaux, de Partitions et de Clusters. Les enregistrements peuvent avoir une clé (facultative), une valeur et un horodatage. Les enregistrements Kafka sont immuables. Un sujet Kafka est un flux d’enregistrements ("/orders", "/user-signups"). Vous pouvez considérer un sujet comme un nom de flux. Un sujet a un journal qui est le stockage du sujet sur le disque. Un journal de sujet est divisé en partitions et segments. L’API Kafka Producer est utilisée pour produire des flux d’enregistrements de données. L’API consommateur Kafka est utilisée pour consommer un flux d’enregistrements de Kafka. Un Broker est un serveur Kafka qui s’exécute dans un cluster Kafka. Les courtiers Kafka forment un cluster. Le cluster Kafka se compose de nombreux courtiers Kafka sur de nombreux serveurs. Broker se réfère parfois plus à un système logique ou à Kafka dans son ensemble.

Cloudurable fournit la formation Kafka, le conseil Kafka, le support Kafka et aide à la configuration de clusters Kafka dans AWS.

Architecture Kafka: Thèmes, Producteurs et Consommateurs

 Architecture Kafka - Diagramme Thèmes, Producteurs et Consommateurs

Kafka utilise ZooKeeper pour gérer le cluster. ZooKeeper est utilisé pour coordonner la topologie des courtiers / clusters. ZooKeeper est un système de fichiers cohérent pour les informations de configuration. ZooKeeper s’habitue à l’élection à la direction pour les chefs de partition de sujet de courtier.

Architecture Kafka: Kafka de base

 Architecture Kafka - Diagramme Kafka de base

Kafka a besoin de ZooKeeper

Kafka utilise Zookeeper pour faire l’élection du leadership des paires de partitions Kafka Broker et Topic. Kafka utilise Zookeeper pour gérer la découverte de services pour les courtiers Kafka qui forment le cluster. Zookeeper envoie les modifications de la topologie à Kafka, de sorte que chaque nœud du cluster sait quand un nouveau courtier a rejoint, un courtier est décédé, un sujet a été supprimé ou un sujet a été ajouté, etc. Zookeeper fournit une vue synchronisée de la configuration du cluster Kafka.

Producteur de Kafka, Consommateur, Détails du sujet

Les producteurs de Kafka écrivent aux sujets. Les consommateurs de Kafka lisent des sujets. Un sujet est associé à un journal qui est une structure de données sur le disque. Kafka ajoute les enregistrements d’un ou de plusieurs producteurs à la fin d’un journal de sujet. Un journal de sujet se compose de nombreuses partitions réparties sur plusieurs fichiers qui peuvent être répartis sur plusieurs nœuds de cluster Kafka. Les consommateurs lisent les sujets de Kafka à leur cadence et peuvent choisir où ils se trouvent (décalage) dans le journal des sujets. Chaque groupe de consommateurs suit le décalage par rapport à l’endroit où ils s’étaient arrêtés en lisant. Kafka distribue des partitions de journal de sujet sur différents nœuds d’un cluster pour des performances élevées avec une évolutivité horizontale. La propagation des partitions aide à écrire rapidement des données. Les partitions de journal de sujet sont un moyen Kafka de séparer les lectures et les écritures dans le journal de sujet. De plus, des partitions sont nécessaires pour que plusieurs consommateurs d’un groupe de consommateurs travaillent en même temps. Kafka réplique les partitions sur de nombreux nœuds pour assurer le basculement.

Architecture Kafka : Partition Thématique, Groupe de consommateurs, Offset et Producteurs

 Architecture Kafka: Partition de sujet, Diagramme de groupe de consommateurs, de compensation et de producteurs

Échelle et vitesse Kafka

Comment Kafka peut-elle évoluer si plusieurs producteurs et consommateurs lisent et écrivent dans le même journal de sujets Kafka en même temps? Tout d’abord, Kafka est rapide, Kafka écrit sur le système de fichiers de manière séquentielle, ce qui est rapide. Sur un lecteur rapide moderne, Kafka peut facilement écrire jusqu’à 700 Mo ou plus d’octets de données par seconde. Kafka met à l’échelle les écritures et les lectures en découpant les journaux de rubriques en partitions. Les journaux des rubriques de rappel peuvent être divisés en plusieurs partitions qui peuvent être stockées sur plusieurs serveurs différents, et ces serveurs peuvent utiliser plusieurs disques.Plusieurs producteurs peuvent écrire sur différentes partitions du même sujet. Plusieurs consommateurs de plusieurs groupes de consommateurs peuvent lire efficacement à partir de différentes partitions.

Courtiers Kafka

Un cluster Kafka est composé de plusieurs courtiers Kafka. Chaque courtier Kafka a un identifiant (numéro) unique.Les courtiers Kafka contiennent des partitions de journal de sujet. La connexion à un courtier initialise un client à l’ensemble du cluster Kafka.Pour le basculement, vous souhaitez commencer avec au moins trois à cinq courtiers. Un cluster Kafka peut avoir, si nécessaire, 10, 100 ou 1 000 courtiers dans un cluster.

Cluster Kafka, Basculement, ISRs

Kafka prend en charge la réplication pour prendre en charge le basculement. Rappelons que Kafka utilise Zookeeperpour former des courtiers Kafka dans un cluster et chaque nœud du cluster Kafka est appelé un courtier Kafka.Les partitions de sujet peuvent être répliquées sur plusieurs nœuds pour un basculement. Le sujet doit avoir un facteur de réplication supérieur à 1 (2 ou 3). Par exemple, si vous utilisez AWS, vous souhaitez pouvoir survivre à une seule panne availabilityzone.Si un courtier Kafka tombe en panne, le courtier Kafka qui est un ISR (réplique synchronisée) peut servir les données.

Basculement Kafka par rapport à la reprise après sinistre Kafka

Kafka utilise la réplication pour le basculement. Réplication des partitionsde journaux de rubriques Kafka permet la défaillance d’un rack ou d’une zone de disponibilité AWS (AZ). Vous avez besoin d’un facteur de réplication d’au moins 3 pour survivre à une seule défaillance AZ. Vous devez utiliser Mirror Maker, un utilitaire Kafka livré avec Kafka core, pour la reprise après sinistre. Mirror Makerreplique un cluster Kafka vers un autre centre de données ou une région AWS.Ils appellent ce que Mirror Maker fait de la mise en miroir à ne pas confondre avec la réplication.

Notez qu’il n’y a pas de règle dure et rapide sur la façon dont vous devez configurer le cluster Kafka en soi.Vous pouvez, par exemple, configurer l’ensemble du cluster dans une seule AZ afin de pouvoir utiliser des groupes de mise en réseau et de placement améliorés pour un débit plus élevé, puis utiliser un miroir pour mettre en miroir le cluster sur une autre AZ dans la même région qu’une veille à chaud.

Architecture Kafka : Coordination Kafka Zookeeper

 Architecture Kafka - Diagramme de coordination Kafka Zookeeper

Kafka Topics Architecture

Veuillez continuer à lire sur l’architecture Kafka. L’article suivant couvre l’architecture des sujets Kafkaavec une discussion sur la façon dont les partitions sont utilisées pour le basculement et le traitement parallèle.

  • Qu’est-ce que Kafka ?
  • Architecture Kafka
  • Architecture Thématique Kafka
  • Architecture Grand public Kafka
  • Architecture Producteur Kafka
  • Architecture Kafka et conception de bas niveau
  • Kafka et Registre de schémas
  • Kafka et Avro
  • Écosystème Kafka
  • Kafka contre JMS
  • Kafka contre Kinesis
  • Tutoriel Kafka: Utilisation de Kafka à partir de la ligne de commande
  • Tutoriel Kafka: Basculement du courtier Kafka et Basculement du consommateur
  • Tutoriel Kafka
  • Tutoriel Kafka: Écriture d’un exemple de producteur Kafka en Java
  • Tutoriel Kafka : Écriture d’un exemple de consommateur Kafka en Java
  • Architecture Kafka: Compactage des journaux
  • Architecture Kafka : Diapositives PDF de Bas Niveau

À propos de Cloudurable

Nous espérons que cet article vous a plu. Veuillez fournir vos commentaires.Cloudurable fournit la formation Kafka, le conseil Kafka, le support Kafka et aide à la configuration de clusters Kafka dans AWS.

Découvrez notre nouveau parcours de GoLang. Nous fournissons une formation Go Lang sur place dirigée par un instructeur.

Tweet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.