Um die Grundlagen von Apache Kafka zu verstehen TrennwandS, Sie müssen über Kafka wissen Thema Erste.
A Thema ist wie eine Datenbank in einer SQL -Datenbank wie Mariadb für Apache Kafka. A Thema Hat einen Namen oder eine Bekennung, die Sie verwenden, um Nachrichten in Apache Kafka zu gruppieren.
A Trennwand ist für jeden wie ein Kanal Thema. A Thema kann viele haben TrennwandS oder Kanäle.
Ein Netzwerkkabel, das zwei Computer verbindet. Einfach so hat Apache Kafka Topie zwei Ziele, Herstellers und VerbraucherS. A Hersteller erstellt Nachrichten und sendet sie in einen der der TrennwandSofa Thema. A Verbraucher Andererseits liest die Nachrichten aus dem TrennwandSofa Thema.
Mehrere TrennwandS oder Kanäle werden erstellt, um die Redundanz zu erhöhen. Es wird auch verwendet, um Nachrichten in einem bestimmten Gruppieren zu gruppieren Thema.
APache Kafka Server starten:
Wenn Sie meinen Artikel befolgt haben, um Apache Kafka zu installieren, starten Sie zunächst den Apache Kafka Server mit dem folgenden Befehl:
$ sudo kafka-server-start.sh /etc /kafka.Eigenschaften
Apache Kafka Server sollte starten. Halten Sie dieses Terminal offen, solange der Apache Kafka Server ausgeführt werden soll.
Erstellen eines Apache -Kafka -Themas:
Sie können einen Apache Kafka erstellen Thema testen mit dem folgenden Befehl:
$ sudo kafka-topics.Sch \
--erstellen \
--Zookeeper localhost: 2181 \
--Replikationsfaktor 1 \
--Partitionen 1 \
--Thementests
Der Thema testen sollte erstellt werden. Das Thema hat 1 Partition.
Wenn Sie erstellen möchten, sagen wir, sagen wir N Partitionen, dann festlegen -Partitionen Zu N.
Lassen Sie uns einen anderen erstellen Thema, sagen wir Benutzer, mit 3 Trennwands, dann den folgenden Befehl ausführen:
$ sudo kafka-topics.Sch \
--erstellen \
--Zookeeper localhost: 2181 \
--Replikationsfaktor 1 \
--Partitionen 3 \
--Themenbenutzer
Themenbenutzer sollte mit 3 erstellt werden TrennwandS.
Hinzufügen von partitionierten Nachrichten zum Thema:
A TrennwandED -Nachricht von a Thema hat ein Taste und ein Wert. Der Taste Und Wert wird normalerweise durch a getrennt Komma oder ein anderer besonderer Charakter. Es spielt keine Rolle, mit welchem besonderen Charakter Sie die trennen, um die zu trennen Taste Und Wert Paar. Aber Sie müssen überall den gleichen besonderen Charakter verwenden Thema. Ansonsten könnten die Dinge schief gehen.
Der Taste wird verwendet, um zu bestimmen, welche Trennwand eine Nachricht von a Thema gehört. Es sollte einzigartig auf einem sein Thema. Wenn Sie haben 3 Trennwands, dann sollten Sie verwenden 3 anders TasteS. So dass die Nachrichten in unterteilt werden können in 3 TrennwandS.
Sagen wir unsere Benutzer Thema hat 3 Benutzer mit Schlüssel 1, 2, Und 3, Jeder von ihnen gehört zu einem der von 3 Trennwands der Benutzer Thema.
Führen Sie den folgenden Befehl aus, um den ersten Benutzer mit hinzuzufügen Schlüssel 1 Verwendung der Kafka Producer API:
$ echo "1, Name: 'Shahriar Shovon', Land: 'Bd'" | Sudo Kafka-Console-Produzent.Sch \
--Brokerliste Localhost: 9092 \ \
--Thema Benutzer \
--Eigentum analysieren.Key = true \
--Eigenschaftschlüssel.Separator =,
Jetzt können Sie die Nachricht von der auflisten Benutzer Thema Verwendung der Kafka Consumer API mit dem folgenden Befehl:
$ sudo kafka-console-consumer.Sch \
--Zookeeper localhost: 2181 \
--Thema Benutzer \
--Eigenschaftsdruck.Key = true \
--Eigenschaftschlüssel.Separator =, \
--von Anfang an
Wie Sie sehen können, die Taste Und Wert Paar, das ich gerade zu der hinzugefügt habe Benutzer Thema ist aufgelistet.
Ich werde das behalten Verbraucher Programm für Benutzer Thema Öffnen Sie an diesem Terminal und fügen Sie die anderen Benutzer zu dem hinzu Benutzer Thema von einem anderen Terminal und sehen, was passiert.
Fügen Sie einen anderen Benutzer mit hinzu Schlüssel 2 mit dem folgenden Befehl:
$ echo "2, Name: 'John Doe', Land: 'Bd'" | Sudo Kafka-Console-Produzent.Sch \
--Brokerliste Localhost: 9092 \ \
--Thema Benutzer \
--Eigentum analysieren.Key = true \
--Eigenschaftschlüssel.Separator =,
Wie Sie aus dem markierten Abschnitt des Screenshot unten sehen können, ist der neue Benutzer sofort im Verbraucherprogramm aufgeführt.
Fügen wir unseren letzten Benutzer mit hinzu mit Schlüssel 3 mit dem folgenden Befehl:
$ echo "3, Name: 'Evelina Aquilino', Land: 'US'" | Sudo Kafka-Console-Produzent.Sch \
--Brokerliste Localhost: 9092 \ \
--Thema Benutzer \
--Eigentum analysieren.Key = true \
--Eigenschaftschlüssel.Separator =,
Wie Sie sehen können, ist der neue Benutzer auch in der aufgeführt Verbraucher Programm.
Sie können auch viele Benutzer zum gleichen hinzufügen Trennwand. Stellen Sie einfach sicher, dass die Taste ist dasselbe.
Fügen wir einen weiteren Benutzer zur Trennwand mit Schlüssel 1:
$ echo "1, name: 'lynelle piatt', land: 'ca'" | Sudo Kafka-Console-Produzent.Sch \
--Brokerliste Localhost: 9092 \ \
--Thema Benutzer \
--Eigentum analysieren.Key = true \
--Eigenschaftschlüssel.Separator =,
Wie Sie sehen können, wird der neue Benutzer zum richtigen hinzugefügt Trennwand des Benutzer Thema.
Ich kann immer wieder zufällige Benutzer zur Benutzer Thema und sie werden die richtige Partition durch den Screenshot unten übersendet.
So ist so Trennwands in Apache Kafka funktioniert. Jeden Trennwand ist wie ein Warteschlange, Die erste Nachricht, die Sie durch diese Partition senden, wird zuerst angezeigt, und dann die zweite Nachricht und so weiter in der Reihenfolge, in der sie gesendet werden.
Wenn Sie ein sind Java Entwickler können Sie verwenden Java Programmiersprache und Apache Kafka Java APIS mit Apache Kafka interessante Dinge tun TrennwandS. Zum Beispiel können Sie unterschiedlich zuweisen Trennwand Für verschiedene Chatrooms für Ihre Instant Messaging -App müssen Nachrichten in der Bestellung angezeigt werden, die sie gesendet werden.
Das ist alles für heute. Vielen Dank für das Lesen dieses Artikels.