Usando Kafka localmente
En esta entrada dejaremos funcionando Kafka localmente
con eso queda lista la configuración inicial de Kafka, lista para jugar, crear tópicos y enviar mensajes 😀
Bonus por llegar al final: creaer un tópico
Para crear un tópico ejecutamos:
- Descarguemos kafka, como normalmente ocurre, hay varias opciones, yo prefiero bajar el binario.
- Luego extraerlo en donde lo ocuparemos y le podemos crear una carpeta llamada data para lo que viene:
- Agregar el bin de Kafka al path:
export PATH=~/code/kafka/kafka_2.13-3.9.0/bin/:$PATH
- Configurar los brokers
Acá configuraremos 3 brokers, para eso vamos a la carpeta kafka_2.13-3.9.1/config y creamos 3 archivos: kafka1.properties, kafka2.properties y kafka3.properties.
NO OLVIDAR, hay que indicar la carpeta donde quedarán los datos (en mi caso es /home/sebastian/code/kafka/data/):
kafka1.properties:
kafka2.properties:broker.id=1 log.dirs=/home/sebastian/code/kafka/data/kafka1 listeners=PLAINTEXT://:9092,CONTROLLER://:9192 process.roles=broker,controller controller.quorum.voters=1@localhost:9192,2@localhost:9193,3@localhost:9194 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
kafka3.properties:broker.id=2 log.dirs=/home/sebastian/code/kafka/data/kafka2 listeners=PLAINTEXT://:9093,CONTROLLER://:9193 process.roles=broker,controller controller.quorum.voters=1@localhost:9192,2@localhost:9193,3@localhost:9194 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
broker.id=3 log.dirs=/home/sebastian/code/kafka/data/kafka3 listeners=PLAINTEXT://:9094,CONTROLLER://:9194 process.roles=broker,controller controller.quorum.voters=1@localhost:9192,2@localhost:9193,3@localhost:9194 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
copiar y pegar el contenido en el archivo indicado.
- Tenemos que inicializar los directorios de cada broker (cambiar versiones y directorios si es necesario), ejecutar en forma secuencial:
export KAFKA_CLUSTER_ID="$(kafka-storage.sh random-uuid)" kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c ~/code/kafka/kafka_2.13-3.9.1/config/kafka1.properties kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c ~/code/kafka/kafka_2.13-3.9.1/config/kafka2.properties kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c ~/code/kafka/kafka_2.13-3.9.1/config/kafka3.properties
la salida sería algo así: - Ahora iniciar los brokers con los siguiente comando:
ejecutarlos en terminales separados o usar el & para unirlos y lanzarlos juntos en una sola linea.kafka-server-start.sh ~/code/kafka/kafka_2.13-3.9.1/config/kafka1.properties kafka-server-start.sh ~/code/kafka/kafka_2.13-3.9.1/config/kafka2.properties kafka-server-start.sh ~/code/kafka/kafka_2.13-3.9.1/config/kafka3.properties
- Para detenerlos hay que ejecutar:
~/code/kafka/kafka_2.13-3.9.1/bin/kafka-server-stop.sh
- Listo!
con eso queda lista la configuración inicial de Kafka, lista para jugar, crear tópicos y enviar mensajes 😀
Bonus por llegar al final: creaer un tópico
Para crear un tópico ejecutamos:
kafka-topics.sh \
--create \
--topic the.topic \
--partitions 1 \
--replication-factor 1 \
--bootstrap-server localhost:9092
Comentarios
Publicar un comentario