Concepts clés de Kafka

Les bases indispensables pour maîtriser l’écosystème Kafka et le streaming temps réel.

C’est quoi Kafka ?

Kafka est une plateforme distribuée de streaming d’événements conçue pour traiter des flux de données à grande échelle, en temps réel, avec une fiabilité et une performance exceptionnellement élevées.

  • Publication et consommation de messages en temps réel.
  • Très haut débit et faible latence.
  • Résilience grâce à la réplication et au partitionnement.

Kafka = Messagerie + Journal distribué + Stockage persistant + Scalabilité horizontale

Concepts clés de Kafka

Topic

Catégorie logique des messages (ex : transactions).

Partition

Division d’un topic pour paralléliser le traitement.

Broker

Serveur Kafka stockant les partitions.

Producer

Application qui envoie les messages.

Consumer

Application qui lit les messages.

Consumer Group

Groupe de consumers se partageant les partitions.

Offset

Position d’un message dans une partition.

Partitionnement Kafka

Le partitionnement est la clé de la scalabilité de Kafka. Il permet d’augmenter le débit, de garantir la résilience et d’assurer le parallélisme des traitements.

  • Scalable – le débit augmente avec le nombre de partitions.
  • Rapide – traitement parallèle.
  • Fiable – réplication automatique.

1. Principe

Un topic est divisé en plusieurs partitions réparties sur plusieurs brokers. Chaque message appartient à une seule partition.

2. Clé de partition

  • Kafka utilise partition = hash(key) % partitions
  • Même clé → même partition → ordre garanti
  • Sans clé → round-robin (équilibrage, mais pas d’ordre)

3. Parallélisme

Dans un consumer group :

  • 1 consumer = 1 partition (pas plus)
  • En cas de panne → redistribution automatique

4. Réplication

  • 1 leader : écritures / lectures
  • Plusieurs followers : répliques synchronisées
  • Failover automatique

5. Orchestration

  • Avant Kafka 2.8 → Zookeeper
  • Kafka 2.8+ → KRaft (orchestration interne)

6. Exemple de configuration

kafka-topics.sh --create \
  --topic transactions \
  --partitions 6 \
  --replication-factor 3 \
  --bootstrap-server localhost:9092
    

Bonnes pratiques

  • Augmenter les partitions pour augmenter le débit.
  • Utiliser une clé logique pour maintenir l’ordre (ex : clientId).
  • Réplication ≥ 3 pour haute disponibilité.
  • Vérifier la distribution équitable des partitions.

Kafka = Topic → Partitions → Brokers → Consumers
Clé → ordre • Partitions → scalabilité • Réplication → tolérance aux pannes

Questions diverses

C’est quoi le Round-Robin dans Kafka ?

Répartition circulaire des messages quand aucune clé de partition n’est fournie. Idéal pour équilibrer la charge, mais ne garantit pas l’ordre.

Kafka vs File de messages classique

Kafka conserve les messages (log persistant). RabbitMQ supprime après lecture. Kafka permet la relecture à tout moment via les offsets.

Offset vs Partition

La partition est l’unité physique de stockage. L’offset est la position du message dans cette partition.

Review My Order

0

Subtotal