Kafka Topics

  • Les topics sont une particularité du streaming de données.
  • Il faut voir cela comme un base de données mais sans schéma/contraintes.
  • On peut avoir autant de topics que l’on souhaite dans le cluster.
  • Un topic est identifié par son nom.
  • Tout type de format de message
  • La séquence des messages est appelées un data stream
  • On ne peut pas faire de requêtes sur un topic, on utilise un Kafka Producer pour envoyer des données et un Kafka Consumer pour lire les données.

Kafka intro

Partitions & Offsets

Les topics sont découpés en partitions (exemple 50 partitions):

  • Les messages dans chaque partition sont ordonnés
  • Chaque message dans une partition possède un ID incrémental, appelé offset

Les topics Kafka sont immutables, les données écrites dans une partition ne peuvent pas être modifiées.
Kafka intro

Les données stockées dans un topic sont gardées pour une durée limité, par défaut 1 semaine.
Un offset est dédié à une partition spécifique:

  • L’offset 7 de la partition 1 ne représente pas l’offset 7 de la partition 0
  • Les offsets ne peuvent pas être réutilisés sauf si le message précédent est supprimé

L’ordre est garantie seulement à l’intérieure d’une partition (pas de cross partition).
Une donnée d’un client est assignée aléatoirement à une partition, sauf si une key est fournie.