Kafka
Definition warten auf.
Apache Kafka ist eine verteilte Ereignis-Streaming-Plattform, die für den Aufbau von Echtzeit-Daten-Pipelines und Streaming-Anwendungen entwickelt wurde. Es funktioniert als hoch skalierbares, fehler-tolerantes und dauerhaftes Publish-Subscribe-Messaging-System. Die Kernarchitektur dreht sich um "Themen", die Kategorien oder Datensätze sind. Produzenten veröffentlichen Datensätze zu Themen und Verbraucher abonnieren Themen, um diese Datensätze zu lesen. Kafka-Broker, die einen Cluster bilden, speichern diese Datensätze dauerhaft und dienen ihnen den Verbrauchern. Die Datensätze sind in Partitionen innerhalb von Themen organisiert, die eine parallele Verarbeitung und hohe Leistung ermöglichen. Jede Partition ist eine
graph LR
Center["Kafka"]:::main
Rel_ipfs["ipfs"]:::related -.-> Center
click Rel_ipfs "/terms/ipfs"
Rel_file_systems["file-systems"]:::related -.-> Center
click Rel_file_systems "/terms/file-systems"
Rel_distributed_ledger_technology_dlt["distributed-ledger-technology-dlt"]:::related -.-> Center
click Rel_distributed_ledger_technology_dlt "/terms/distributed-ledger-technology-dlt"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Wissenstest
🧒 Erkläre es wie einem 5-Jährigen
Stell dir das wie einen super organisierten, superschnellen Postdienst für digitale Informationen vor. Nachrichten (Ereignisse) werden an bestimmte Postfächer (Themen) geschickt und können von jedem abgeholt werden, der dieses Postfach abonniert hat – der Absender muss dabei gar nicht wissen, wer die Empfänger sind.
🤓 Expert Deep Dive
Kafkas Architektur basiert auf dem Konzept eines verteilten Commit Logs. Topics sind partitioniert, und jede Partition ist eine geordnete Sequenz von Nachrichten. Broker speichern diese Partitionen, und Replikation sorgt für Fehlertoleranz, wobei eine Leader-Follower-Dynamik für die Partitionsverwaltung zum Einsatz kommt. Produzenten schreiben Nachrichten an den Leader einer Partition, und Follower replizieren die Daten asynchron. Konsumenten verwalten ihren eigenen Offset innerhalb jeder Partition, was ihnen ermöglicht, ihren Fortschritt unabhängig zu verfolgen. Diese entkoppelte Natur ermöglicht hohen Durchsatz und Skalierbarkeit. Zu den Kompromissen gehören die Möglichkeit der Nachrichten-Neusortierung innerhalb einer Partition, wenn dies von Konsumenten nicht sorgfältig gehandhabt wird, sowie die Komplexität der Verwaltung von Konsumentengruppen-Rebalancings bei Ausfällen oder Skalierungsereignissen. ZooKeeper war historisch entscheidend für die Metadatenverwaltung, die Leader-Wahl und die Broker-Registrierung, aber das KRaft-Protokoll zielt darauf ab, diese Abhängigkeit zu beseitigen. Schwachstellen können unsichere Broker-zu-Broker-Kommunikation, unzureichende Zugriffskontrollen, die zu Datenlecks führen, und potenzielle Denial-of-Service-Angriffe auf Broker oder ZooKeeper umfassen.