【Kafka】Notes conceptuelles de base de Kafka

【Kafka】Notes conceptuelles de base de Kafka

1. Deux modes

En tant que file d'attente de messages, Kafka a deux modes :

  1. mode peer-to-peer
  2. modèle de publication/abonnement

1.1 Mode point à point

Caractéristiques:

  • Le consommateur extrait activement les données et efface le message une fois le message reçu

image-20230705110531581


1.2 Mode Publier/S'abonner

  • Il peut y avoir plusieurs sujets (navigation, likes, favoris, commentaires, etc.)
  • Une fois que le consommateur a consommé les données, les données ne sont pas supprimées
  • Chaque consommateur est indépendant les uns des autres et peut consommer des données

image-20230705110722828


2. Infrastructures

Les infrastructures de Kafka :

  1. Pour faciliter l'expansion et améliorer le débit, un sujet est divisé en plusieurs partitions (partitions)
  2. Parallèlement à la conception de la cloison, le concept de groupe de consommateurs est proposé. Chaque consommateur du groupe consomme en parallèle. Une cloison ne peut être consommée que par un seul consommateur du groupe pour éviter les consommations répétées.
  3. Pour améliorer la disponibilité, ajoutez plusieurs copies pour chaque partition
  4. Qui est le leader est enregistré dans Zookeeper, Kafka2.8.0 et les versions ultérieures peuvent également être configurées pour ne pas utiliser ZK

image-20230705111049119

  • Groupe de consommateurs (CG) : Un groupe de consommateurs composé de plusieurs consommateurs. Chaque consommateur d'un groupe de consommateurs est responsable de la consommation de données provenant de différentes partitions. Pour éviter la consommation répétée de messages détaillés, une partition ne peut être consommée que par un consommateur du groupe ; les groupes de consommateurs n'ont pas d'influence les uns sur les autres . Tous les consommateurs appartiennent à un groupe de consommateurs, c'est-à-dire qu'un groupe de consommateurs est un abonné logique.
  • Broker : Un serveur Kafka est un broker. Un cluster se compose de plusieurs courtiers. Un courtier peut contenir plusieurs sujets.
  • Sujet : Cela peut être compris comme une file d'attente, et les producteurs et les consommateurs sont confrontés à un sujet .
  • Partition : afin d'atteindre l'évolutivité, un sujet très volumineux peut être distribué à plusieurs courtiers (c'est-à-dire des serveurs), un sujet peut être divisé en plusieurs partitions , et chaque partition est une file d'attente ordonnée .
  • Réplique : copie. Chaque partition d'un sujet a plusieurs copies, un Leader et plusieurs Followers.
  • Leader : Le "primaire" des multiples copies de chaque partition, l'objet auquel le producteur envoie des données, et l'objet dont le consommateur consomme les données sont tous des leaders.
  • Follower : "l'esclave" en plusieurs copies de chaque partition, synchronise les données du leader en temps réel et maintient la synchronisation avec les données du leader. Lorsque le Leader échoue, un Follower devient le nouveau Leader.

3. Fonctionnement de la ligne de commande du sujet

3.1 Opération d'affichage du sujet

① Afficher les paramètres de commande de sujet d'opération

#在kafka的目录下
bin/kafka-topics.sh

Après avoir saisi la ligne de commande, la console répertorie tous les paramètres et leur signification :

image-20230705232832770

Résumé comme suit :

image-20230705232404846


3.2 Créer un sujet

②Créez un sujet nommé en premier, le nombre de partitions doit être 1 et le cluster a 3 nœuds, donc la copie de partition est définie sur 3

bin/kafka-topics.sh --bootstrap-server node1:9092 --create --partitions 1 --replication-factor 3 --topic first

3.3 Afficher tous les sujets

③ Afficher tous les sujets du serveur actuel

bin/kafka-topics.sh --bootstrap-server node1:9092 --list

3.4 Afficher les détails du sujet

④ Afficher les détails du premier sujet

bin/kafka-topics.sh --bootstrap-server node1:9092 --describe --topic first

image-20230705233257193

  • Replicas:1,2,0Indique que des répliques existent dans trois nœuds
  • Leader:1Indique que la copie principale est stockée dans le nœud nommé 1 et que les deux autres magasins sont des copies suiveuses
  • Isr:1,2,0Représente une copie synchrone, la copie suiveuse synchronise les données de la copie principale et l'ISR est un ensemble de copies utilisées dans Kafka pour assurer la cohérence et la fiabilité des données

3.5 Modifier le nombre de partitions

⑤ Remarque : le nombre de partitions ne peut être qu'augmenté mais pas diminué

bin/kafka-topics.sh --bootstrap-server node1:9092 --alter --partitions 3 --topic first

Vérifiez à nouveau les détails du premier thème après modification :

image-20230705233811497


3.6 Supprimer le sujet

⑥Supprimer le premier thème

bin/kafka-topics.sh --bootstrap-server node1:9092 --delete --topic first

4. Opération de ligne de commande du producteur

4.1 Fonctionnement de la ligne de commande du producteur

Afficher les paramètres de commande du producteur d'opérations

bin/kafka-console-producer.sh

image-20230706205550681

image-20230706205534461


4.2 Envoyer un message au sujet

bin/kafka-console-producer.sh --bootstrap-server node1:9092 --topic first

image-20230706210323573

Un message a été envoyé au premier sujet hello world.


5. Opération de ligne de commande du consommateur

5.1 Afficher les paramètres de commande du consommateur d'opération

bin/kafka-console-consumer.sh

image-20230706210917759

image-20230706210940712

image-20230706210834768


5.2 Consommer des messages dans le sujet

Consommer les messages du premier sujet

bin/kafka-console.consumer.sh --bootstrap-server node1:9092 --topic first

image-20230706211322198

Nous avons constaté que le curseur clignotait, mais n'a reçu aucun message, c'est parce que kafka lit le message après le démarrage du script consommateur par défaut, et si vous voulez lire toutes les données (y compris les données historiques), vous devez ajouter --from-beginningdes paramètres

bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --from-beginning --topic first

image-20230706211724910

De cette manière, les données historiques sont également lues.


Je suppose que tu aimes

Origine blog.csdn.net/Decade_Faiz/article/details/131566058
conseillé
Classement