Tutorial Apache Kafka#

  • Apache Kafka es una plataforma de transmisión de eventos distribuidos de código abierto utilizada por miles de empresas para canalizaciones de datos de alto rendimiento, análisis de streaming, integración de datos y aplicaciones de misión crítica.

  • Es un sistema de mensajería escalable que permite a los usuarios publicar y consumir grandes cantidades de mensajes en tiempo real por suscripción.

Configuración inicial#

  • Una vez instalado Apache Kafka se deberán abrir los puertos del servidor para los distintos servicios del framework.

  • Puerto 9092 para Kafka y puerto 2181 para Zookeeper.

sudo ufw allow 9092
  Cell In [1], line 1
    sudo ufw allow 9092
         ^
SyntaxError: invalid syntax
sudo ufw allow 2081
  • Mostrar el estado de los servicios

sudo /opt/bitnami/ctlscript.sh status
  • Iniciar un servicio

sudo /opt/bitnami/ctlscript.sh start
  • Reiniciar un servicio

sudo /opt/bitnami/ctlscript.sh restart apache
  • Detener todos los servicios

sudo /opt/bitnami/ctlscript.sh stop

Ejecutar un productor y un consumidor en Kafka#

  • Crear y colectar un tópico en Kafka utilizando la consola.

  • Se inicia exportando la configuración de autenticación a Kafka.

export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/bitnami/kafka/config/kafka_jaas.conf"
  • Crear un nuevo tópico con una única partición y una única réplica.

/opt/bitnami/kafka/bin/kafka-topics.sh --create --zookeeper \ 
SERVER-IP:2181 --replication-factor 1 --partitions 1 --topic test
  • Crear un nuevo productor y generar el mensaje para el tópico.

/opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list \
SERVER-IP:9092 --producer.config /opt/bitnami/kafka/config/producer.properties --topic test
  Este es mi primer mensaje
  ... y este es el segundo
  • Recuperar y presentar los mensajes.

/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic test --consumer.config /opt/bitnami/kafka/config/consumer.properties --from-beginning