Installazione di Apache Kafka su Docker Desktop

Visto che di recente ho installato Kafka su Docker Desktop, condivido una semplice guida per arrivare ad averlo funzionante in qualche minuto.

Installazione di Kafka tramite Docker Compose

  1. Installare Docker Desktop per Windows.
  2. Registrarsi a Docker Hub se non si ha già un account.
  3. Effettuare tramite Docker Desktop il login su Docker Hub (clic destro sull’icona nella system tray).
  4. Per evitare che si verifichino errori durante la build in ambiente Windows, dalla git bash eseguire:
git config --global core.autocrlf false
  1. Effettuare con git il clone del repository https://github.com/wurstmeister/kafka-docker.git.
  2. Aprire il file docker-compose-single-broker.yml e impostare nella variabile d’ambiente KAFKA_ADVERTISED_HOST_NAME il valore kafkaserver.
  3. Nel file host di Windows aggiungere la riga:
127.0.0.1 kafkaserver
  1. Con la powershell di Windows (per aprirla tasto Windows  + x) posizionarsi nella cartella git clonata ed eseguire il comando:
docker-compose -f .\docker-compose-single-broker.yml up

Attendere che il processo di installazione e avvio termini.

Test dell’installazione

  1. Scaricare https://downloads.apache.org/kafka/2.6.0/kafka_2.12-2.6.0.tgz ed estrarre il contenuto.
  2. Portarsi nella cartella kafka_2.12-2.6.0\bin\windows sempre con la Powershell ed eseguire il comando per creare un topic:
.\kafka-topics.bat --create --topic test-events --bootstrap-server localhost:9092

Nel caso vi ritorni l’errore: “The input line is too long. The syntax of the command is incorrect.” accorciare il path rinominando le cartelle.

  1. Eseguire il comando per creare messaggi nel topic creato:
.\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-events --from-beginning

La shell si bloccherà in attesa di messaggi dal producer

  1. Aprire un’altra Powershell nella stessa cartella ed eseguire il comando:
.\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test-events

Scrivere del testo e premere invio. Nell’altra shell del consumer si vedranno comparire i messaggi appena scritti dal producer.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *