Flux d'événements : Kafka, Lambda et Kappa
Informatique de gestion · Master 1
Traiter des événements en continu : journal Kafka, architectures Lambda et Kappa.
Introduction
Beaucoup de décisions de gestion perdent leur valeur si elles arrivent trop tard : détection de fraude carte, alerte de stock, tarification dynamique. Le traitement de flux analyse les événements au fil de l'eau plutôt qu'en lots nocturnes.
Un journal d'événements distribué, dont Kafka est l'exemple le plus connu, joue le rôle de colonne vertébrale : les producteurs y écrivent, plusieurs consommateurs lisent à leur rythme.
Ce deck présente topics, partitions et groupes de consommateurs, les fenêtres temporelles, les garanties de livraison, et les architectures Lambda et Kappa.
Objectifs d'apprentissage
- Décrire topics, partitions et groupes de consommateurs
- Expliquer les fenêtres temporelles et le temps d'événement
- Comparer livraison au moins une fois et exactement une fois
- Distinguer architectures Lambda et Kappa
Concepts clés
- Journal d'événements
- Suite ordonnée, durable et rejouable d'événements ; les consommateurs conservent leur position de lecture (offset).
- Partitions
- Un topic est divisé en partitions pour le parallélisme ; l'ordre n'est garanti qu'au sein d'une partition.
- Fenêtres
- Agrégations sur des fenêtres de temps (fixes, glissantes, par session), idéalement selon le temps d'événement et non celui d'arrivée.
- Sémantique de livraison
- Au plus une fois (pertes possibles), au moins une fois (doublons possibles), exactement une fois (effet unique, plus coûteux).
- Lambda et Kappa
- Lambda combine un traitement par lots et un traitement temps réel ; Kappa n'utilise qu'un traitement de flux, en rejouant le journal au besoin.
Conclusion
Le traitement de flux répond aux cas où la fraîcheur de la donnée fait la valeur. Un journal d'événements partitionné, des consommateurs idempotents et des fenêtres bien définies permettent des décisions quasi immédiates.
Retenez les garanties de livraison, la différence entre temps d'événement et d'arrivée, et le choix Lambda ou Kappa.
Cartes
- Qu'est-ce qu'un topic ?
- Un canal nommé d'événements auquel les producteurs écrivent et que lisent les consommateurs.
- À quoi servent les partitions ?
- À paralléliser l'écriture et la lecture ; l'ordre n'est garanti qu'au sein d'une partition.
- Qu'est-ce qu'un offset ?
- La position de lecture d'un consommateur dans une partition.
- Qu'est-ce qu'un groupe de consommateurs ?
- Un ensemble de consommateurs qui se partagent les partitions d'un topic.
- Quelle différence entre temps d'événement et temps d'arrivée ?
- Le premier est le moment où l'événement s'est produit, le second celui où il est reçu ; ils divergent en cas de retard.
- Que signifie livraison au moins une fois ?
- Aucun message perdu, mais des doublons possibles, d'où l'idempotence.
- Qu'est-ce qu'une opération idempotente ?
- Une opération dont la répétition produit le même résultat qu'une exécution unique.
- Qu'est-ce que l'architecture Lambda ?
- Une voie par lots pour l'exactitude et une voie temps réel pour la rapidité, fusionnées en lecture.
- Quel avantage de Kappa ?
- Une seule logique de traitement, avec rejeu du journal pour corriger ou recalculer.
Glossaire
- Topic
- Canal nommé d'événements dans un journal.
- Partition
- Tranche ordonnée d'un topic pour le parallélisme.
- Offset
- Position d'un consommateur dans une partition.
- Idempotence
- Propriété d'une opération répétable sans effet supplémentaire.
- Fenêtre glissante
- Agrégation sur un intervalle de temps qui avance régulièrement.
- Architecture Kappa
- Architecture n'utilisant qu'un traitement de flux avec rejeu.