Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

Konzepte — Kafka

Architektur

Kafka auf Hikube ist ein verwalteter verteilter Streaming-Dienst. Jede über die Ressource Kafka bereitgestellte Instanz erstellt einen Cluster aus Brokern, die von ZooKeeper koordiniert werden und Millionen von Nachrichten pro Sekunde mit garantierter Persistenz verarbeiten können.


Terminologie

BegriffBeschreibung
KafkaKubernetes-Ressource (apps.cozystack.io/v1alpha1), die einen verwalteten Kafka-Cluster darstellt.
BrokerKafka-Instanz, die Nachrichten speichert und Produzenten/Konsumenten bedient.
ZooKeeperVerteilter Koordinierungsdienst, der die Metadaten des Clusters, die Leader-Wahl und die Topic-Konfiguration verwaltet.
TopicBenannter Nachrichtenkanal. Produzenten schreiben in ein Topic, Konsumenten lesen aus einem Topic.
PartitionUnterteilung eines Topics. Jede Partition ist ein geordnetes Nachrichtenlog, das auf einem Broker verteilt ist.
Replication FactorAnzahl der Kopien jeder Partition auf verschiedenen Brokern.
Consumer GroupGruppe von Konsumenten, die sich die Partitionen eines Topics für die parallele Verarbeitung aufteilen.
RetentionMaximale Aufbewahrungsdauer oder -größe von Nachrichten in einem Topic.
resourcesPresetVordefiniertes Ressourcenprofil (nano bis 2xlarge).

Topics und Partitionen

Funktionsweise

Ein Topic wird in Partitionen aufgeteilt, die jeweils auf einem anderen Broker verteilt sind:

  • Mehr Partitionen = mehr Parallelität
  • Jede Partition hat einen Leader (einen Broker) und Follower (Replikate)
  • Der replicationFactor bestimmt die Anzahl der Kopien jeder Partition

Konfiguration der Topics

Die Topics werden direkt im Kafka-Manifest deklariert:

ParameterBeschreibung
topics[name].partitionsAnzahl der Partitionen des Topics
topics[name].config.replicationFactorAnzahl der Replikate pro Partition
topics[name].config.retentionMsAufbewahrungsdauer in ms (z.B. 604800000 = 7 Tage)
topics[name].config.cleanupPolicydelete (Löschung nach TTL) oder compact (Aufbewahrung der letzten Nachricht pro Schlüssel)

ZooKeeper

ZooKeeper sorgt für die Koordination des Kafka-Clusters:

  • Leader-Wahl für jede Partition
  • Speicherung der Metadaten (Topics, Partitionen, Offsets)
  • Ausfallerkennung der Broker
Tipp

Konfigurieren Sie immer eine ungerade Anzahl von ZooKeeper-Instanzen (zookeeper.replicas: 3), um das Quorum zu gewährleisten.

Die ZooKeeper-Ressourcen werden unabhängig von den Brokern über zookeeper.resources oder zookeeper.resourcesPreset konfiguriert.


Ressourcen-Presets

Die Presets werden getrennt auf die Kafka-Broker und den ZooKeeper angewendet:

PresetCPUSpeicher
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi

Grenzen und Kontingente

ParameterWert
Max. Kafka-BrokerJe nach Tenant-Kontingent
ZooKeeper-Instanzen3 empfohlen (ungerade)
Topics pro ClusterUnbegrenzt (je nach Ressourcen)
Partitionen pro TopicKonfigurierbar
SpeichergrößeVariabel (kafka.size, zookeeper.size)

Weiterführende Informationen