Willkommen in Kafkaland!

Veröffentlicht

(Bartha Bela Tibor) (19. Juni 2020)

Intro

Wenn Sie jemals mit Nachrichtenwarteschlangen- oder Streaming-Plattformen gearbeitet haben, Kafka sollten Sie überprüfen. Die beste Verwendung ist das Streaming von Daten in Echtzeit.

Wenn Sie Kafka für Ihre Anwendung in Betracht ziehen, eignet sich Kafka am besten für die folgenden Anwendungsfälle:

  • Pub / Subnachrichten
  • Stream-Verarbeitung
  • Datenspeicherung

Bevor Sie Kafka berühren, sollten Sie zunächst Folgendes wissen: Kafka ist blitzschnell, Sie haben enorme Freiheiten und es ist leicht, Fehler zu machen, wenn Sie von einer anderen Plattform für Nachrichtenwarteschlangen kommen.

In diesem Artikel konzentrieren wir uns darauf, die Dinge mit Kafka richtig zu machen.

Schlüssel Konzepte:

  • Nachricht : Dateneinheit
  • Thema : Datenkanal
  • Partition : Themen können mehr Partitionen haben
  • Offset : Position einer Nachricht in einer Partition
  • Produzent : Ermöglicht einer Anwendung, Daten zu einem bestimmten Thema zu veröffentlichen.
  • Verbraucher : Die Anwendung kann Daten aus einem oder mehreren Themen verwenden. Ein Thema kann mehrere Verbraucher haben. Verbraucher können eine beliebige Anzahl von Partitionen eines Themas abonnieren.
  • Verbrauchergruppen : Verbraucher können in Verbrauchergruppen organisiert werden, die aus einem Thema lesen, parallel, wenn sie aus verschiedenen Themen lesen Partitionen
  • Broker : Verwaltet die Speicherung von Themen
  • Cluster : Mehrere Broker mit mehreren Brokern
  • Leader / Replikat : Jeder Broker enthält eine Reihe von Partitionen eines Themas. Jede dieser Partitionen kann ein Leader oder eine Replik sein. Alle Schreib- und Lesevorgänge zu einem Thema werden auf dem Leader ausgeführt, der die Aktualisierung der Replikate koordiniert. Wenn ein Anführer ausfällt, übernimmt ein Replikat die Rolle des Anführers.

Weitere Informationen zu Kafka-Grundlagen finden Sie hier .

Grundlagen mit Node.js

Für dieses Intro verwenden wir Node.js und erstellen grundlegende Produzenten und Konsumenten.

Zunächst einmal: Sie installieren Kafka lokal wie beschrieben hier .

In diesem Artikel wird davon ausgegangen, dass wir nur einen Broker haben.

Themen werden erstellt, bevor unsere Anwendung ausgeführt wird (siehe unten).

Zum Zeitpunkt des Schreibens dieses Intro gibt es 3 stabile Pakete, die mit NodeJS verwendet werden können:

  1. Node-rdkafka
  2. KafkaJS
  3. li> Kafka-Knoten

Alle diese Funktionen funktionieren auf ähnliche Weise. Zur Einführung verwenden wir node-rdkafka ( npm install node-rdkafka )

Angenommen, Sie haben Kafka lokal mit Standardeinstellungen installiert und einen Broker gestartet, können wir einen einfachen Produzenten und Konsumenten erstellen.

Erstellen Sie das Thema manuell:

Erstellen Sie einen Produzenten und erzeugen Sie ein Ereignis:

Erstellen Sie die Verbraucher- und Konsumereignisse:

Dies ist ein Beispiel für einen fließenden Verbraucher. Es verbraucht Ereignisse, wie sie im Thema erscheinen. Eine andere Möglichkeit besteht darin, einen nicht fließenden Consumer zu verwenden, indem die Anzahl der Ereignisse angegeben wird, die als Parameter für consumer.consume (number) verwendet werden sollen. In diesem Fall erhalten wir die Nachrichten, nachdem die Anzahl der nicht konsumierten Nachrichten im Thema angegeben wurde.

Commits

Da Kafka für die Ausfallsicherheit konzipiert wurde, können Verbraucher die Nachrichten als verbraucht markieren. festgeschrieben . Standardmäßig führt node-rdkafka Auto-Commits durch. Dies kann auch manuell erfolgen: consumer.commit () oder consumer.commitMessage (message) .

Wenn die Verbindung zum Verbraucher getrennt wird, kann ein anderer Verbraucher die festgeschriebene Nachricht fortsetzen.

Willkommen in Kafkaland! Viel Spaß!

Dies ist der erste aus einer Reihe von vier Artikeln. Wird mit speziellen Fällen der Kafka-Nutzung für: Microservices, Chatbots und Fintech-Projekte folgen. Ja!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.