Comment configurer le partitionnement dans Apache Kafka

Comment configurer le partitionnement dans Apache Kafka
Apache Kafka est un puissant service de courtier de messages. C'est très rapide et fiable. Apache Kafka est open source et libre d'utiliser. Il est écrit en java.Dans cet article, je vais vous montrer comment configurer des partitions dans Apache Kafka. Commençons.

Bases des partitions Apache Kafka:

Pour comprendre les bases d'Apache Kafka CloisonS, vous devez connaître Kafka Sujet d'abord.

UN Sujet est comme une base de données dans une base de données SQL telle que MariaDB pour Apache Kafka. UN Sujet a un nom ou un identifiant que vous utilisez pour regrouper les messages dans Apache Kafka.

UN Cloison est comme un canal pour chacun Sujet. UN Sujet peut avoir beaucoup CloisonS ou canaux.

Un câble réseau reliant deux ordinateurs a deux extrémités, l'une envoie des données, l'autre reçoit des données. Juste comme ça, le sujet Apache Kafka a deux extrémités, Producteursable Consommateurs. UN Producteur crée des messages et les envoie dans l'un des Cloisoncanapé Sujet. UN Consommateur D'un autre côté lit les messages du Cloisoncanapé Sujet.

Plusieurs CloisonS ou canaux sont créés pour augmenter la redondance. Il est également utilisé pour regrouper les messages dans un Sujet.

Démarrage du serveur Kafka Apache:

Si vous avez suivi mon article pour installer Apache Kafka, commencez d'abord le serveur Apache Kafka avec la commande suivante:

$ sudo kafka-server-start.sh / etc / kafka.propriétés

Le serveur Apache Kafka devrait démarrer. Gardez ce terminal ouvert tant que vous souhaitez que le serveur Apache Kafka s'exécute.

Création d'un sujet Apache Kafka:

Vous pouvez créer un apache kafka Sujet essai avec la commande suivante:

$ sudo kafka-topics.sh \
--créer \
--Zookeeper localhost: 2181 \
--Facteur de réplication 1 \
--partitions 1 \
--tests de sujet

Le Sujet essai devrait être créé. Ce Sujet a 1 partition.

Si vous voulez créer, disons N partitions, puis réglé -partitions pour N.

Créons un autre Sujet, Disons utilisateurs, avec 3 Cloisons, puis exécutez la commande suivante:

$ sudo kafka-topics.sh \
--créer \
--Zookeeper localhost: 2181 \
--Facteur de réplication 1 \
--partitions 3 \
--Utilisateurs de sujet

Utilisateurs de sujet devrait être créé avec 3 Cloisons.

Ajout de messages partitionnés au sujet:

UN Cloisoned message d'un Sujet a un clé et un valeur. Le clé et valeur est généralement séparé par un virgule ou autre personnage spécial. Peu importe le caractère spécial que vous utilisez pour séparer le clé et valeur paire. Mais vous devez utiliser le même personnage spécial partout à ce sujet Sujet. Sinon, les choses pourraient mal tourner.

Le clé est utilisé pour déterminer quel Cloison un message d'un Sujet appartient à. Il devrait être unique sur un Sujet. Si tu as 3 Cloisons, alors vous devriez utiliser 3 différent clés. Afin que les messages puissent être divisés en 3 Cloisons.

Disons notre utilisateurs Sujet a 3 utilisateurs avec clé 1, 2, et 3, chacun d'eux appartient à l'un des 3 Cloisons du Sujet des utilisateurs.

Exécutez la commande suivante pour ajouter le premier utilisateur avec clé 1 en utilisant le API producteur de Kafka:

$ echo "1, name: 'shahriar shovon', pays: 'bd'" | sudo kafka-console producteur.sh \
--Broker-list localhost: 9092 \
--Sujet utilisateurs \
--analyse de propriété.key = true \
--clé de propriété.séparateur =,

Vous pouvez maintenant répertorier le message à partir du utilisateurs Sujet en utilisant le API du consommateur Kafka avec la commande suivante:

$ sudo kafka-consoleur-conscumeuse.sh \
--Zookeeper localhost: 2181 \
--Sujet utilisateurs \
--Impression de propriété.key = true \
--clé de propriété.séparateur =, \
--Depuis le début

Comme vous pouvez le voir, le clé et valeur paire que je viens d'ajouter au utilisateurs Sujet est listé.

Je vais garder le Consommateur programme pour utilisateurs Sujet Ouvrez sur ce terminal et ajoutez les autres utilisateurs au utilisateurs Sujet D'un autre Terminal Et voyez ce qui se passe.

Ajouter un autre utilisateur avec clé 2 avec la commande suivante:

$ echo "2, nom: 'John Doe', pays: 'bd'" | sudo kafka-console producteur.sh \
--Broker-list localhost: 9092 \
--Sujet utilisateurs \
--analyse de propriété.key = true \
--clé de propriété.séparateur =,

Comme vous pouvez le voir dans la section marquée de la capture d'écran ci-dessous, le nouvel utilisateur est inscrit sur le programme de consommation instantanément.

Ajoutons notre dernier utilisateur avec clé 3 avec la commande suivante:

$ echo "3, nom: 'Evelina Aquilino', pays: 'us'" | sudo kafka-console producteur.sh \
--Broker-list localhost: 9092 \
--Sujet utilisateurs \
--analyse de propriété.key = true \
--clé de propriété.séparateur =,

Comme vous pouvez le voir, le nouvel utilisateur est également répertorié dans le Consommateur programme.

Vous pouvez également ajouter de nombreux utilisateurs à la même chose Cloison. Assurez-vous simplement le clé est le même.

Ajoutons un autre utilisateur au Cloison avec clé 1:

$ echo "1, name: 'Lynellle piatt', pays: 'ca'" | sudo kafka-console producteur.sh \
--Broker-list localhost: 9092 \
--Sujet utilisateurs \
--analyse de propriété.key = true \
--clé de propriété.séparateur =,

Comme vous pouvez le voir, le nouvel utilisateur est ajouté au bon Cloison de la Sujet des utilisateurs.

Je peux continuer à ajouter des utilisateurs aléatoires au utilisateurs Sujet Et ils seront envoyés par la cloison correcte comme vous pouvez le voir sur la capture d'écran ci-dessous.

Alors c'est comme ça Cloisons dans Apache Kafka fonctionne. Chaque Cloison Est comme un File d'attente, Le premier message que vous envoyez via cette partition s'affiche d'abord, puis le deuxième message et ainsi de suite dans l'ordre, ils sont envoyés.

Si vous êtes un Java développeur, vous pouvez utiliser Java Langage de programmation et Apache kafka java apiS pour faire des choses intéressantes avec Apache Kafka Cloisons. Par exemple, vous pouvez attribuer différent Cloison Pour différentes salles de discussion pour votre application de messagerie instantanée car les messages doivent être affichés sur la commande, ils sont envoyés.

Alors c'est tout pour aujourd'hui. Merci d'avoir lu cet article.