À partir dApache Kafka

(13 juin 2019)

Quest-ce quApache Kafka?

Apache Kafka est à lorigine une plate-forme de messagerie dajout uniquement basée sur publication-abonnement développé par LinkedIn et plus tard donné à Fondation Apache .

(* Limage est pour lembellissement)

Cas dutilisation

  • Messagerie
  • Agrégation de journaux
  • Traitement du flux
  • Journal de validation
  • Recherche dévénements, etc.

Comment ça marche?

Kafka fonctionne dans le modèle pub-sub. Il y aura donc un groupe de consommateurs / consommateurs et un éditeur.

Le producteur publiera des données sur un sujet spécifique et le consommateur abonné au sujet consommera des données. Plusieurs producteurs peuvent publier sur le même sujet, mais un seul consommateur peut utiliser les données dun sujet à la fois.

Vous pouvez maintenant demander si un seul le consommateur est autorisé à consommer à partir dun sujet à la fois et sil y a des milliers dévénements à venir, comment les mettre à léchelle?

Daccord. Dans ce cas, nous pouvons diviser le sujet en partitions pour obtenir une évolutivité.

Lorsque nous partitionnons le sujet, chaque message de la partition a un offset\_id / message\_id. Dans limage de gauche, nous avons fait 3 partitions et chaque producteur enverra un événement à une partition spécifique. Et le consommateur lira à partir dune partition spécifique. Maintenant, si nous avons 300 événements / sec envoyés, ils seront divisés en 3, donc chaque partition aura 100 messages / sec. De cette manière, nous pouvons réaliser léquilibrage de charge. Lorsque nous partitionnons, Kafka assure uniquement lordre des messages au niveau de la partition . Pour obtenir lordre avec le partitionnement, nous devons utiliser la clé .

Si les événements augmentent, nous devons faire plus de partitions et ajouter plus de consommateurs pour évoluer et réaliser léquilibrage de charge .

Une fois que nous recevons lévénement, nous devons valider le journal à Kafka, donc Kafka comprendra que lévénement a été traité et Kafka ne le renverra plus. Si, au milieu du traitement, notre application est écrasée, Kafka enverra à nouveau cet événement pour le traiter.

Facteur de réplication:

Le facteur de réplication est la manière dont les données de Kafka seront répliquées avec différents courtiers Kafka. Supposons que nous ayons choisi le facteur de réplication N = 3, les données seront répliquées vers 2 autres courtiers. Donc Kafka fonctionnera toujours si le courtier N-1 tombe en panne, car il y a au moins un courtier en vie avec les données nécessaires pour le faire fonctionner. Apache Zookeeper?

Apache Zookeeper est un service centralisé pour les systèmes distribués vers un magasin clé-valeur hiérarchique, qui est utilisé pour fournir un service de configuration distribué, la synchronisation service et registre de dénomination pour les grands systèmes distribués. Apache Kafka ne fonctionne pas sans Zookeeper. Gestion du cluster Kafka, si un courtier arrive ou tombe en panne, si un nouveau sujet a été créé…. Ce type de données est synchronisé avec un autre courtier Kafka via Zookeeper.

Spinup Kafka>

docker-compose up

Consommateur (Golang)>

Producteur (Kotlin)>

Résultat>

Waiting for messages...Topic : users.notification
Partition : 0
Offset : 1
Value : hello

Ressources:

1. github.com/confluentinc/confluent-kafka-go
2. compile group: "io.opentracing.contrib", name: "opentracing-kafka-client", version: "0.1.2"

Laisser un commentaire

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