Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Concepts — Kafka

Architecture

Kafka sur Hikube est un service managé de streaming distribué. Chaque instance déployée via la ressource Kafka crée un cluster de brokers coordonnés par ZooKeeper, capable de gérer des millions de messages par seconde avec une persistance garantie.


Terminologie

TermeDescription
KafkaRessource Kubernetes (apps.cozystack.io/v1alpha1) représentant un cluster Kafka managé.
BrokerInstance Kafka qui stocke les messages et sert les producteurs/consommateurs.
ZooKeeperService de coordination distribué qui gère les métadonnées du cluster, l'élection du leader et la configuration des topics.
TopicCanal de messages nommé. Les producteurs écrivent dans un topic, les consommateurs lisent depuis un topic.
PartitionSubdivision d'un topic. Chaque partition est un log ordonné de messages, distribué sur un broker.
Replication FactorNombre de copies de chaque partition sur différents brokers.
Consumer GroupGroupe de consommateurs qui se répartissent les partitions d'un topic pour le traitement parallèle.
RetentionDurée ou taille maximale de conservation des messages dans un topic.
resourcesPresetProfil de ressources prédéfini (nano à 2xlarge).

Topics et partitions

Fonctionnement

Un topic est divisé en partitions, chacune distribuée sur un broker différent :

  • Plus de partitions = plus de parallélisme
  • Chaque partition a un leader (un broker) et des followers (réplicas)
  • Le replicationFactor détermine le nombre de copies de chaque partition

Configuration des topics

Les topics sont déclarés directement dans le manifeste Kafka :

ParamètreDescription
topics[name].partitionsNombre de partitions du topic
topics[name].config.replicationFactorNombre de réplicas par partition
topics[name].config.retentionMsDurée de rétention en ms (ex: 604800000 = 7 jours)
topics[name].config.cleanupPolicydelete (suppression par TTL) ou compact (conservation du dernier message par clé)

ZooKeeper

ZooKeeper assure la coordination du cluster Kafka :

  • Élection du leader pour chaque partition
  • Stockage des métadonnées (topics, partitions, offsets)
  • Détection des pannes des brokers
astuce

Configurez toujours un nombre impair d'instances ZooKeeper (zookeeper.replicas: 3) pour garantir le quorum.

Les ressources ZooKeeper sont configurées indépendamment des brokers via zookeeper.resources ou zookeeper.resourcesPreset.


Presets de ressources

Les presets s'appliquent séparément aux brokers Kafka et au ZooKeeper :

PresetCPUMémoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Limites et quotas

ParamètreValeur
Brokers Kafka maxSelon quota tenant
Instances ZooKeeper3 recommandé (impair)
Topics par clusterIllimité (selon ressources)
Partitions par topicConfigurable
Taille stockageVariable (kafka.size, zookeeper.size)

Pour aller plus loin