Bienvenue à Kafkaland!

(Bartha Bela Tibor) (19 juin 2020)

Intro

Si vous avez déjà travaillé avec des plates-formes de mise en file dattente de messages ou de streaming, Kafka est celui que vous devez vérifier. Il est préférable de lutiliser pour le streaming de données en temps réel.

Si vous envisagez dutiliser Kafka pour votre application, Kafka est le meilleur pour les cas dutilisation suivants:

  • Pub / Sous-messagerie
  • Traitement de flux
  • Stockage de données

Tout dabord, avant de toucher Kafka, il faut savoir ce qui suit: Kafka est extrêmement rapide, vous avez une énorme liberté, et il est facile de se tromper lorsque vous venez dune autre plate-forme de mise en file dattente de messages.

Dans cet article, nous nous concentrerons sur les choses correctement avec Kafka.

Concepts:

  • message : unité de données
  • sujet : canal de données
  • partition : les sujets peuvent avoir plus de partitions
  • offset : position dun message dans une partition
  • producteur : permet à une application de publier des données sur un sujet donné
  • consommateur : lapplication peut consommer des données dun ou plusieurs sujets. Un sujet peut avoir plusieurs consommateurs. Les consommateurs peuvent sabonner à nimporte quel nombre de partitions dun sujet.
  • groupes de consommateurs : les consommateurs peuvent être organisés en groupes de consommateurs, qui lisent à partir dun sujet, en parallèle lorsquils lisent à partir de différents partitions
  • courtier : gère le stockage des sujets
  • cluster : plusieurs courtiers, contenant plusieurs courtiers
  • leader / réplica : chaque courtier contient un certain nombre de partitions dun sujet, chacune delles pouvant être un leader ou une réplique. Toutes les écritures et lectures sur un sujet sont effectuées sur le leader, qui coordonne la mise à jour des répliques. Si un leader échoue, une réplique prend le rôle de leader

Pour en savoir plus sur les bases de Kafka, cliquez ici .

Principes de base avec Node.js

Pour cette introduction, nous utiliserons Node.js, et nous créerons un producteur et un consommateur de base.

Tout dabord, vous installerez Kafka localement comme décrit ici .

Cet article suppose que nous navons quun seul courtier.

Les sujets seront créés avant lexécution de notre application, voir ci-dessous.

Au moment décrire cette intro, il y a 3 packages stables à utiliser avec NodeJS:

  1. Node-rdkafka
  2. KafkaJS
  3. Kafka-node

Tout cela fonctionne de la même manière, pour lintroduction nous utiliserons node-rdkafka ( npm install node-rdkafka )

En supposant que vous ayez installé Kafka localement avec les paramètres par défaut et démarré un courtier, nous pouvons créer un simple producteur et consommateur.

Créez le sujet manuellement:

Créez un producteur et produisez un événement:

Créer le (s) événement (s) consommateur et consommation:

Ceci est un exemple pour un consommateur fluide. Il consomme les événements tels quils apparaissent sur le sujet. Une autre possibilité est dutiliser un consommateur non fluide, en spécifiant le nombre dévénements à consommer en paramètre de consumer.consume (nombre). Dans ce cas, nous recevrons les messages après avoir eu le nombre de messages non consommés dans le sujet.

Commits

Étant donné que Kafka a été conçu pour la sécurité en cas de panne, les consommateurs peuvent marquer les messages comme consommés – engagé . Par défaut, node-rdkafka effectue auto-commits , également, cela peut être fait manuellement: consumer.commit () ou consumer.commitMessage (message) .

En cas de déconnexion du consommateur, un autre consommateur peut continuer à partir du message validé.

Bienvenue à Kafkaland! Amusez-vous bien!

Ceci est le premier dune série de quatre articles. Suivra des cas spécifiques dutilisation de Kafka pour: les microservices, les chatbots et les projets fintech. Ouais!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *