Formation Apache Kafka : de zéro à la prod

Kafka producer et consumer : envoyer et lire des messages — chapitre 3

Produire et lire des messages, garantir l’ordre et comprendre la logique de routage.

Réservé aux abonnés

Contexte

Un Kafka producer publie des messages dans un topic, un Kafka consumer les lit : ce chapitre vous fait pratiquer les deux. Dans une architecture orientée événements, savoir envoyer et lire des messages est essentiel. Un microservice producteur (ex : Commandes) génère des événements, tandis qu’un autre microservice consommateur (ex : Facturation) les lit pour déclencher des actions métiers.

Lexique

Producteur

Application qui envoie les messages dans un topic.

Consommateur

Application qui lit les messages publiés.

Clé

Identifiant utilisé pour décider dans quelle partition un message est stocké.

Partition

Unité de parallélisme ; messages d’une même clé → même partition.

Schéma d’envoi & de consommation

PRODUCTEUR (votre appli)send(record)Sérialiseur + partitionneurclé → partitionAccumulateur1 lot par partitionThread Senderenvoie les lots prêtsCLUSTERLeader orders-0broker 1Followerbroker 2Followerbroker 3fetchfetchackCONSOMMATEURpoll()lit les lots chez le leaderlinger.ms + batch.size décident de la taille des lotsacks=all : l’ack part quand toutes les répliques de l’ISR ont copié
Schéma Le trajet d’un message, du send() au poll()

Comment lire le schéma

  • À gauche, ce qui se passe dans votre application : send() ne part pas tout de suite sur le réseau. Le message est sérialisé, sa partition est choisie, puis il attend dans un lot (jaune).
  • Un thread séparé, le Sender (violet), envoie les lots quand ils sont pleins (batch.size) ou quand le délai linger.ms est écoulé.
  • Le leader écrit le lot, les followers viennent le copier (fetch), puis l'ack revient au producteur (pointillés).
  • Le consommateur lit lui aussi chez le leader, par lots. C'est cette logique de lots partout qui donne à Kafka son débit.

La suite de cette leçon est réservée aux abonnés

Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.