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
Ensemble de consommateurs se répartissant les partitions.
Redistribution automatique des partitions lorsqu’un consumer rejoint ou quitte le groupe.
Position du message dans la partition. Stocké par consumer group.
Différence entre le dernier message produit et le dernier message consommé.
Diagramme
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
- 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.
