Création & Gestion des Topics Kafka

Comprendre, créer, configurer et optimiser les topics pour une architecture scalable.

Contexte

Un topic est l’unité logique où les messages sont publiés par les producteurs et consommés par les consommateurs. C’est l’élément central de Kafka : une bonne gestion des topics garantit performance, scalabilité, et résilience d’une plateforme e-commerce (commandes, paiements, livraisons…).

Lexique

Topic
Canal logique où sont organisés les messages.
Partition
Unités parallèles d’un topic pour augmenter le débit.
Retention
Durée ou taille maximale de stockage des messages.
Cleanup Policy
Stratégie de gestion des données : delete ou compact.

Schéma Kafka simplifié

Architecture topics Kafka

Commandes pratiques

# Créer un topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --create \
  --topic commandes.ecommerce \
  --partitions 3 --replication-factor 1

# Lister les topics
bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

# Décrire un topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe \
  --topic commandes.ecommerce

# Modifier un topic (ajout de partitions)
bin/kafka-topics.sh --bootstrap-server localhost:9092 --alter \
  --topic commandes.ecommerce --partitions 6

# Supprimer un topic
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete \
  --topic commandes.ecommerce
    

Paramètres avancés indispensables

🧹 cleanup.policy

delete : suppression des messages arrivés à expiration.
compact : conserve uniquement la dernière valeur par clé (idéal pour les profils clients, états).

⏱ retention.ms

Durée de conservation des messages (ex : 604800000 pour 7 jours).

📦 retention.bytes

Taille maximale avant suppression automatique.

🧩 segment.bytes

Découpe des logs en segments pour optimiser la lecture/écriture.

# Exemple : topic compacté + rétention 7j
bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter \
  --entity-type topics --entity-name commandes.ecommerce \
  --add-config cleanup.policy=compact,retention.ms=604800000
    

Conventions de nommage conseillées

  • Utiliser un format hiérarchique domaine.sous-domaine.version
  • Exemples réels en entreprise :
    • order.created.v1
    • stock.update.v2
    • payment.validated.v1
  • Pas d’accents, pas d’espaces, pas de majuscules.
  • Versionner vos topics (ex : order.created.v2) pour éviter les cassures.

Erreurs fréquentes

  • Créer trop peu de partitions → goulets d’étranglement.
  • Créer trop de partitions → surcharge CPU et I/O.
  • Modifier un topic en production sans plan de rollback.
  • Oublier le cleanup.policy, entraînant des clusters saturés.

Quiz

  • Quelle commande affiche les détails d’un topic ?
  • Peut-on réduire le nombre de partitions ? Pourquoi ?
  • Quelle stratégie utiliser pour un topic contenant l’état d’un compte client ?

Exercice

Créez un topic livraison avec 4 partitions. Ajoutez-lui une stratégie de rétention de 3 jours puis supprimez-le.

Résumé

Les topics sont le cœur de Kafka. Leur configuration (partitions, rétention, compactage…) influence directement les performances et la robustesse de votre architecture. Savoir manipuler la CLI Kafka est indispensable pour prendre le contrôle de votre cluster.

Navigation

Review My Order

0

Subtotal