Groupes de consommateurs Kafka

Comprendre la répartition automatique, le lag, le rééquilibrage et la scalabilité de la consommation.

Contexte

Lorsqu’un système traite un haut volume d’événements, un seul consommateur ne suffit pas. Kafka permet de partager la charge via les groupes de consommateurs, assurant une lecture parallèle, scalable et hautement disponible d’un topic.

Lexique

Groupe de consommateurs

Ensemble de consommateurs se répartissant les partitions.

Rééquilibrage (Rebalance)

Redistribution automatique des partitions lorsqu’un consumer rejoint ou quitte le groupe.

Offset

Position du message dans la partition. Stocké par consumer group.

Lag

Différence entre le dernier message produit et le dernier message consommé.

[private role= »access_springboot »]

Diagramme

Groupes de consommateurs Kafka

Exemple de répartition automatique des partitions entre plusieurs consommateurs.

Commandes pratiques

# Consommateur avec groupId "facturation"
bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic commandes.ecommerce \
  --group facturation \
  --from-beginning \
  --property print.key=true \
  --property print.partition=true

# Description d’un groupe
bin/kafka-consumer-groups.sh \
  --bootstrap-server localhost:9092 \
  --describe \
  --group facturation

# Lister les groupes existants
bin/kafka-consumer-groups.sh \
  --bootstrap-server localhost:9092 \
  --list

# Lancer deux consumers dans le même groupe
bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic commandes.ecommerce \
  --group facturation

# Vérifier la répartition des partitions
bin/kafka-consumer-groups.sh \
  --bootstrap-server localhost:9092 \
  --describe \
  --group facturation
    
Bonnes pratiques :
  • Utilisez un naming explicite pour les groupes (ex : facturation, livraison, notification).
  • Surveillez régulièrement le lag pour détecter un ralentissement de consommation.
  • Évitez d’avoir plus de consommateurs que de partitions : les extra consumers seront inactifs.
  • Assurez une bonne répartition partitions ↔ consommateurs selon la charge.
  • Activez un auto commit maîtrisé ou un commit manuel pour garantir l’exactitude.

Résultat

Les partitions du topic commandes.ecommerce sont automatiquement réparties entre les consommateurs du groupe facturation. Si un consumer disparaît, Kafka effectue un rééquilibrage et attribue les partitions restantes aux consommateurs encore actifs.

Résumé

Les groupes de consommateurs permettent de traiter un flux de messages en parallèle et assurent automatiquement la haute disponibilité. Kafka gère le rééquilibrage, les offsets et le lag, garantissant un système performant et résilient.

Quiz rapide

  • Combien de partitions peut gérer un seul consommateur ?
  • Que se passe-t-il si un consommateur quitte le groupe ?
  • À quoi sert le lag et comment l’interpréter ?

Exercice pratique

Lancez 3 consommateurs dans un groupe nommé parlement sur un topic contenant 6 partitions. Observez la répartition. Tuez ensuite un des processus : analysez le rééquilibrage effectué automatiquement par Kafka.

[/private]

Navigation