Formation Apache Kafka : de zéro à la prod

Apache Kafka : définition et cas d’usage — introduction

Le streaming d’événements moderne pour des architectures fiables, scalables et temps réel.

Leçon gratuite

Introduction & Objectifs

Apache Kafka est une plateforme distribuée de streaming d’événements : elle reçoit, stocke et redistribue des flux de messages en temps réel entre applications. Dans un environnement où les systèmes doivent traiter des données massives en temps réel, Kafka s’impose comme la plateforme incontournable du streaming d’événements. Initialement développé chez LinkedIn, il est devenu la référence mondiale pour les architectures distribuées, microservices et pipelines temps réel.

Cette formation vous guide pas à pas, de manière progressive et orientée métier, grâce à un fil rouge concret : la digitalisation d’un système de gestion de commandes e-commerce.

Lexique essentiel

Kafka

Plateforme distribuée de streaming d’événements.

Producteur

Envoie des messages vers Kafka.

Consommateur

Lit les messages d’un topic.

Topic

Canal logique de communication.

Partition

Unité de scalabilité d’un topic.

Broker

Serveur Kafka qui stocke les messages.

KRaft

Gestion des métadonnées intégrée à Kafka (protocole Raft). Seul mode disponible depuis Kafka 4.0 : ZooKeeper a été retiré.

Architecture E-commerce avec Kafka

PRODUCTEURSKAFKACONSOMMATEURSSite webcommandesPaiementtransactionsStockmouvementsorderspaymentsstock-eventsFacturationE-mails clientEntrepôtAnalyticsUn événement écrit une fois, lu par autant de services que nécessaireLes producteurs ne connaissent pas les consommateurs : ajout sans modifier l’existant
Architecture Kafka au centre d’une boutique en ligne

Comment lire le schéma

  • À gauche, les services qui produisent des événements : une commande passée, un paiement accepté, un stock mis à jour.
  • Au centre, Kafka range chaque type d’événement dans un topic (jaune). Il les conserve sur disque, il ne les supprime pas après lecture.
  • À droite, les services qui consomment. Chaque service lit à son rythme. Les pointillés montrent qu’un même service peut lire plusieurs topics.
  • Ajouter un nouveau consommateur (par exemple un service de fraude) ne demande aucune modification des producteurs.

Présentation générale de Kafka dans une architecture e-commerce moderne.

Objectifs pédagogiques

  • Comprendre les fondamentaux et l’architecture distribuée de Kafka.
  • Installer et configurer un cluster Kafka 4.x de 3 nœuds en mode KRaft (sans ZooKeeper).
  • Créer, publier et consommer des messages sur un topic Kafka.
  • Maîtriser les partitions, la rétention, les offsets & consumer groups.
  • Appliquer Kafka à des cas concrets dans l’e-commerce.

Quiz Introductif

  • Q1. Kafka est un système de :
    • A. Base de données relationnelle
    • B. Gestion de conteneurs
    • C. Streaming d’événements
  • Q2. Les messages Kafka sont publiés dans :
    • A. Un topic
    • B. Un cluster
    • C. Une file d’attente

Exercice : projection métier

Imaginez une application de livraison de repas :
Quels types d’événements transitent dans Kafka ?
Quels services produisent ? Quels services consomment ?

Bonnes pratiques

  • Kafka est pensé pour la haute disponibilité → raisonnez toujours en cluster.
  • Identifiez clairement vos producteurs et consommateurs dans votre domaine métier.

Sous le capot : pourquoi Kafka tient le volume

MécanismeCe qu’il faitEffet
Journal en ajout seulChaque partition est un fichier où l’on écrit toujours à la finÉcritures séquentielles, très rapides même sur disque classique
Page cache de l’OSKafka laisse Linux garder les données récentes en mémoireLes lecteurs « à jour » lisent depuis la RAM, pas le disque
Zero-copy (sendfile)Les données passent du cache disque au réseau sans copie par la JVMMoins de CPU, plus de débit en lecture
Lots + compressionLe producteur regroupe les messages et compresse le lot (lz4, zstd)Moins de requêtes réseau, 3 à 5 fois moins d’octets
PartitionsUn topic est découpé en N journaux indépendantsN producteurs et N consommateurs travaillent en parallèle

Lab : dimensionner un cluster pour le Black Friday

Avant d’installer quoi que ce soit, un architecte chiffre le besoin. Exemple réel pour une boutique moyenne :

DonnéeValeurCalcul
Commandes un jour normal20 000—
Pic du Black Friday× 10 sur 2 heures200 000 commandes en 2 h
Événements par commande8 (création, paiement, stock, expédition…)1,6 million d’événements en 2 h
Débit de pointe≈ 220 messages/s en moyenne, prévoir × 5 pour les rafales≈ 1 100 messages/s
Taille moyenne d’un message1 Ko (JSON)≈ 1,1 Mo/s en écriture
Stockage pour 7 jours1,6 M × 1 Ko × 7 j × 3 répliques (hypothèse prudente : chaque jour au niveau du pic)≈ 34 Go (+ 30 % de marge)

Conclusion : ce volume est modeste pour Kafka. Une VM de lab tient déjà plusieurs dizaines de milliers de messages par seconde. Le vrai sujet n’est pas le débit, c’est la fiabilité : ne perdre aucune commande, et rejouer proprement en cas d’erreur. C’est le fil rouge des labs de cette formation.

Astuce d’expert : dimensionner pour la panne, pas pour la moyenne

  • Dimensionnez avec un broker en moins (N-1) : pendant une maintenance ou une panne, les 2 survivants doivent absorber tout le trafic et la re-réplication.
  • Gardez les disques sous 60-70 % d’occupation : un disque plein arrête le broker, et la rétention ne libère l’espace qu’au niveau des segments fermés.
  • Le nombre de partitions fixe le parallélisme maximal des consommateurs : prévoyez-le pour le pic (ex. 12 partitions), car l’augmenter plus tard casse l’ordre par clé.

À faire

  • Refaites le calcul avec vos propres chiffres (ou ceux de votre client).
  • Après le Chapitre 1, vérifiez que le cluster tourne (kafka-lab.sh status), puis mesurez la capacité réelle de votre VM avec kafka-producer-perf-test.sh (Chapitre 3) et comparez avec votre besoin.

Résumé

Kafka permet de construire des systèmes fiables, scalables et capables de traiter de grands flux de données en temps réel. Cette formation vous accompagnera étape par étape avec une approche claire, illustrée et orientée métier.

Suivez votre progression. Créez un compte gratuit pour cocher vos leçons et reprendre là où vous en étiez.

Créer un compte gratuit