Wir installieren Apache Kafka auf einem Microsoft Windows Server 2019.

Hierzu wird folgendes benötigt

Installation von JDK

Von der Seite Java SE Runtime Environment 8 Downloads laden wir das Windows x64 Paket herunter.

Die heruntergeladene Datei jre-8u271-windows-x64.exe führen wir aus. Mit einem Klick auf Install starten wir die Installation.

Die JRE wurde erfolgreich im Verzeichnis C:\Program Files\Java\jre1.8.0_271 installiert.

Danach fügen wir in den Umgebungsvariablen > Systemvariablen JAVA_HOME = C:\Program Files\Java\jre1.8.0_271 hinzu.

Der letzte Schritt ist es der PATH Variable %JAVA_HOME%\bin hinzuzufügen. Damit ist die Basis-Konfigration abgeschlossen!

Mit der Eingabe java -version in der Kommandozeile können wir prüfen ob Java generell funktioniert.

Apache ZooKeeper insallieren

Als nächstes steht die Installation von Apache Zookeeper an. Dazu laden wir von der Apache ZooKeeper Downloads Seite die Apache ZooKeeper 3.6.2 herunter.

Danach entpacken wir die Datei in ein beliebiges Verzeichnis. In meinem Fall unter c:\zookeeper.

Nun gehen wir ins Apache ZooKeeper Config Verzeichnis c:\zookeeper\conf. Hier erstellen wir von der Datei zoo_sample.cfg eine Kopie und benennen diese um in zoo.cfg.

Die zoo.cfg öffnen wir in Notepad und suchen die Zeile

dataDir=/tmp/zookeeper

Diese Zeile ändern wir um in dataDir=c:\zookeeper.

Danach fügen wir in den Umgebungsvariablen > Systemvariablen ZOOKEEPER_HOME = c:\zookeeper hinzu.

Der letzte Schritt ist es der PATH Variable %ZOOKEEPER_HOME%\bin hinzuzufügen. Damit ist die Basis-Konfigration abgeschlossen!

Um ZooKeeper zu starten, öffnen wir die Kommandozeile und geben im Prompt zkserver ein.

Und siehe da, Apache ZooKeeper läuft.

Apache Kafka installieren

Zum Start müssen wir uns die letzte Version von Kafka unter https://kafka.apache.org/downloads herunterladen. Ich lade die Version Scala 2.13kafka_2.13-2.7.0.tgz herunter.

Anschließend entpacke ich die Datei in das Verzeichnis c:\kafka.

Im Kafka Config Verzeichnis c:\kafka\config öffnen wir nun die Datei server.properties.

Wie suchen nach der Zeile log.dirs=/tmp/kafka-logs und ändern diese in log.dirs=c:\kafka\kafka-logs.

Wenn der ZooKeeper auf derselben Maschine läuft als auch unter dem Standard-Port 2181, dann sind keine weiteren Änderungen an der Datei notwendig. Ansonsten muss man die Zeile zookeeper.connect=localhost:2181 ebenfalls anpassen.

Kafka läuft standardmäßig auf dem Port 9092 (der ZooKeeper auf 2181).

Bevor wie den Apache Kafka Server starten, muss sichergestellt sein das der ZooKeeper läuft (siehe vorherigen Abschnitt).

Um Kafka zu starten, öffnen wir die Kommandozeile und wechseln in das Kafka Verzeichnis c:\kafka. Hier geben wir nun .\bin\windows\kafka-server-start.bat .\config\server.properties ein und drücken die Enter-Taste.

.\bin\windows\kafka-server-start.bat .\config\server.properties

Nachdem der Kafka gestartet ist, sieht die Kommadozeile ähnlich wie dieser aus:

Apache Kafka is up and running. Perfekt! Nun können wir Topics erstellen und Daten an Kafka schicken oder konsumieren. Das kann per Java, Scala, C#, Python oder in einer anderen Sprache/Tool gemacht werden oder aber via Kommandozeile.

Apache Kafka Topics erstellen

Um Topics zu erstellen öffnen wir erneut eine Kommandozeile und wechseln in das Verzeichnis c:\kafka\bin\windows.

Topics verwalten wir mit dem Befehl kafka-topics.bat. Der nachfolgende Befehl ertellt ein Topic mit dem Namen bogazci.

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic bogazci

Kafka Server Test mit einem Apache Kafka Producer und Consumer

Apache liefert einen einfachen Producer und Consumer mit. Um unseren Kafka Server zu testen erstellen wir zunächst mit dem Producer einfache Nachrichten, die anschließend mit dem Consumer abgerufen werden.

Für den Producer starten wir erneut ein neues Konsolenfenster und wechseln in das Verzeichnis c:\kafka\bin\windows.

Jetzt geben wir den nachfolgenden Befehl ein kafka-console-producer.bat --broker-list localhost:9092 --topic bogazci.

kafka-console-producer.bat --broker-list localhost:9092 --topic bogazci

Die Konsole lauscht nun auf unsere Eingabe mit >.

Nun erstellen wir einen Consumer und öffnen hierzu ein weiteres Konsolenfenster und wechseln auch bei diesem in das Verzeichnis c:\kafka\bin\windows.

Hier geben wir nun nachfolgenden Befehl ein kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic bogazci.

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic bogazci

Und nun kann man im Producer Fenster Nachrichten eingeben und siehe da, der Consumer holt sie ab und zeigt sie sofort an!

Einige nützliche Befehle gibt es auch noch:

Topics auflisten

kafka-topics.bat --list --zookeeper localhost:2181

Topics löschen

kafka-run-class.bat kafka.admin.TopicCommand --delete --topic [topic_to_delete] --zookeeper localhost:2181

Nachrichten von Beginn an lesen

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic [Topic Name] --from-beginn

So, nun läuft auch unser Apache Kafka Server!