IBM Cloud Docs
Erlernen von Apache Kafka

Erlernen von Apache Kafka

Apache Kafka ist eine verteilte Streaming-Plattform, die von vielen Unternehmen für zahlreiche Batch-Workloads sowie für Anwendungsfälle für Echtzeitdatenintegration und Datenstreaming verwendet wird.

Kafka-Architekturdiagramm.
The diagram shows a Kafka architecture.

Die folgende Liste enthält einige Apache Kafka-Konzepte:

Broker

Apache Kafka ist ein verteiltes Nachrichtensystem (Messaging-System). Ein Kafka-Cluster besteht aus einer Gruppe von Brokern. Ein Cluster verfügt über mindestens drei Broker.

Diagramm für

-Broker.
Diagram that shows an example cluster with three brokers.

Nachrichten

Eine Nachricht ist eine Dateneinheit in Kafka. Jede Nachricht wird als Datensatz dargestellt, der aus zwei Teilen besteht: Schlüssel und Wert. Der Schlüssel wird in der Regel für Daten zur Nachricht verwendet und der Wert ist der Nachrichtentext. Kafka verwendet die Begriffe "Datensatz" und "Nachricht" synonym.

Topics und Partitionen

Jedes Topic ist ein benannter Strom von Nachrichten. Ein Topic besteht aus einer oder mehreren Partitionen. Die Nachrichten in einer Partition werden nach einer Nummer sortiert, die als Offset bezeichnet wird. Mit mehreren Partitionen, die über die Broker verteilt sind, wird die Skalierbarkeit eines Themas erhöht.

Wenn ein Topic mehr als eine Partition aufweist, können Daten parallel eingesendet werden, um den Durchsatz zu erhöhen, indem die Partitionen im Cluster verteilt werden. Die Anzahl der Partitionen beeinflusst auch den Lastausgleich zwischen den Consumern.

Weitere Informationen finden Sie in Partitions-Leadership.

Themen und Teilungsdiagramm.
The diagram shows one topic with three partitions that are spread across three brokers.

Replikation

Zur Verbesserung der Verfügbarkeit kann jedes Topic auf mehrere Broker repliziert werden. Für jede Partition ist einer der Broker der Leader, während die anderen Broker die Follower sind.

Die Replikation funktioniert in der Weise, dass die Follower wiederholt Nachrichten vom Leader abrufen.

Replikationsdiagramm.
The diagram shows a topic partition that is replicated across three brokers.

Synchrone Replikate

Ein Follower-Replikat, das auf dem Stand des Partitionsleaders ist, ist synchron. Jeder Follower mit einem synchronen Replikat kann zum Leader werden, ohne dass Nachrichten verloren gehen.

Wenn der Partitionsleader ausfällt, wird ein anderer Leader unter den Followern ausgewählt. Alle Replikate müssen normalerweise synchron sein. Es ist akzeptabel, dass ein Replikat vorübergehend nicht synchron ist, während es nach einem Ausfall aufholt.

Diagramm 'Synchrone Replikate'.
The diagram shows a topic partition that is replicated across three brokers and staying in-sync across all replicas.

Erzeuger

Ein Producer ist eine Clientanwendung, die Nachrichten in einem oder mehreren Topics veröffentlicht. Ein Producer kann Datenströme in einem oder mehreren Topics veröffentlichen und optional die Partition auswählen, in denen die Daten gespeichert werden.

Sie können Ihren Producer auch so konfigurieren, dass er der Geschwindigkeit oder der Zuverlässigkeit Vorrang einräumt, indem Sie den Grad der Bestätigung wählen, den der Producer für die von ihm veröffentlichten Nachrichten erhält.

Weitere Informationen finden Sie unter Nachrichten erstellen.

Producer-Diagramm.
The diagram shows a producer publishing messages to one topic across three brokers.

Konsumenten

Ein Konsument ist eine Clientanwendung, die Nachrichten aus einem oder mehreren Topics liest und verarbeitet. Der Unterschied zwischen der aktuellen Position eines Consumers und der neuesten Nachricht in einer Partition wird als Offsetverzögerung bezeichnet.

Wenn die Verzögerung mit der Zeit größer wird, ist dies ein Hinweis darauf, dass der Consumer nicht in der Lage ist, Schritt zu halten. Kurzfristig ist dies kein Problem, aber schließlich kann der Konsument Nachrichten verpassen, wenn der Aufbewahrungszeitraum überschritten wird.

Weitere Informationen finden Sie unter Nachrichten verarbeiten.

-Konsumentendiagramm.
The diagram shows a consumer processing messages from one topic across three brokers.

Konsumentengruppen

Eine Konsumentengruppe enthält einen oder mehrere Konsumenten, die zusammenarbeiten, um die Nachrichten eines Themas zu verarbeiten. Die Nachrichten aus einer einzelnen Partition werden durch jeweils einen Consumer in jeder Gruppe verarbeitet.

Zu jedem Zeitpunkt ist jede Partition nur einem Consumer in der Gruppe zugeordnet. Diese Zuordnung stellt sicher, dass die Nachrichten auf jeder Partition in der richtigen Reihenfolge verarbeitet werden.

Wenn in einer Gruppe mehr Partitionen als Konsumenten vorhanden sind, haben einige Konsumenten mehrere Partitionen. Wenn mehr Konsumenten als Partitionen vorhanden sind, haben einige Konsumenten keine Partitionen.

Diagramm für Konsumentengruppen.
The diagram shows a consumer processing messages from one topic across three brokers.

Weitere Informationen

Weitere Informationen finden Sie in der Dokumentation zuApache Kafka.