Was ist Kafka?
Diese asynchrone API wird unter Verwendung des Apache Kafka-Protokolls implementiert. Es handelt sich um eine Plattform für Publish/Subscribe-Ereignisse, die als fehlertolerant konzipiert wurde und eine Plattform mit hoher Durchsatzrate und niedriger Latenz für die Verarbeitung von Echtzeitdatenfeeds bereitstellt.
Kafka wird als Cluster von einem oder mehreren Servern (Kafka-Brokern) ausgeführt. Die Last wird über den Cluster verteilt, indem sie auf die Server aufgeteilt wird.
Schlüsselkonzepte
Thema
Ein Datenstrom von Nachrichten wird in Kategorien mit dem Namen "Topics" gespeichert. Themen werden als Kanäle in einem AsyncAPI-Dokument dargestellt. Jedes Thema umfasst eine oder mehrere Partitionen. Jede Partition ist eine geordnete Liste von Nachrichten. Die Nachrichten auf einer Partition werden jeweils mit einer monoton steigenden Zahl bezeichnet, die als Offset bezeichnet wird.
Nachricht/Datensatz
Die Einheit der Daten in Kafka, die zwei Teile umfasst: Header und Wert. Header werden häufig für Daten über die Nachricht verwendet, und der Wert ist der Nachrichtentext.
Produzent
Ein Prozess, der Datenströme von Nachrichten zu Kafka-Themen veröffentlicht. Ein Produzent kann zu einem oder mehreren Themen publizieren und kann optional die Partition auswählen, in der die Daten gespeichert werden.
Konsument
Ein Prozess, der Nachrichten aus Kafka-Themen konsumiert und das Feed von Nachrichten verarbeitet. Ein Konsument kann aus einem oder mehreren Themen oder Partitionen konsumieren.
Konsumentengruppe
Eine benannte Gruppe von einem oder mehreren Konsumenten, die zusammen die Nachrichten aus einem Themesatz konsumieren. Jeder Konsument in der Gruppe liest Nachrichten von bestimmten Partitionen, denen er zugeordnet ist. Jede Partition wird nur einem Konsumenten in der Gruppe zugeordnet. Die Zuordnung wird durch die Consumer-Eigenschaften 'client.id' und 'group.id' gesteuert.
Aus dieser API konsumieren
Sie benötigen einen Kafka-Client, um eine Verbindung herzustellen und zu abonnieren. Kafka-Clientbibliotheken stehen für eine Vielzahl von Programmiersprachen zur Verfügung, und der Beispielcode für jeden Kanal ist ein Ausgangspunkt für die Verwendung eines Java Kafka-Clients zum Konsumieren von Ereignissen mithilfe eines Kafka-Konsumenten.