Cómo crear un tema de Kafka usando Docker Compose

1 feb 2024 3 min di lettura
Cómo crear un tema de Kafka usando Docker Compose
Indice dei contenuti

Introducción

Apache Kafka es una plataforma de transmisión distribuida que le permite crear aplicaciones y canalizaciones de datos de transmisión en tiempo real. Configurar Kafka puede ser complejo, pero Docker Compose simplifica el proceso al definir y ejecutar aplicaciones Docker de múltiples contenedores. Esta guía proporciona un enfoque paso a paso para crear un tema de Kafka utilizando Docker Compose, haciéndolo accesible tanto para desarrolladores como para profesionales de DevOps.

Requisitos previos

Antes de sumergirse en el proceso de creación, asegúrese de tener los siguientes requisitos previos instalados en su sistema:

  • Docker: brinda la capacidad de crear, implementar y ejecutar aplicaciones utilizando contenedores.
  • Docker Compose: una herramienta para definir y ejecutar aplicaciones Docker de múltiples contenedores.

Paso 1: cree un archivo de redacción de Docker

El primer paso consiste en crear un archivo docker-compose.yml. Este archivo define los servicios Kafka y Zookeeper necesarios para ejecutar la instancia de Kafka. Zookeeper es un servicio centralizado para mantener información de configuración, nombres, sincronización distribuida y proporcionar servicios grupales.


version: '3'
 services:
 zookeeper:
 image: wurstmeister/zookeeper
 container_name: zookeeper
 ports:
 - "2181:2181"
 networks:
 - kafka-net
 kafka:
 image: wurstmeister/kafka
 container_name: kafka
 ports:
 - "9092:9092"
 environment:
 KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9093
 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
 KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
 KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
 KAFKA_CREATE_TOPICS: "YourTopicName:1:1"
 networks:
 - kafka-net
 networks:
 kafka-net:
 driver: bridge

Reemplace YourTopicName con el nombre deseado para su tema de Kafka. El formato de la variable de entorno KAFKA_CREATE_TOPICS es TopicName:NumberOfPartitions:ReplicationFactor.

Paso 2: ejecutar Docker Compose

Navegue hasta el directorio que contiene el archivo docker-compose.yml y ejecute el siguiente comando en la terminal:

docker-compose up -d

Este comando descargará las imágenes de Docker necesarias para Kafka y Zookeeper y luego iniciará los contenedores en modo independiente.

Paso 3: verificar la creación del tema

Para verificar que se haya creado el tema de Kafka, puede utilizar la herramienta de línea de comandos de temas de Kafka que viene con Kafka. Ejecute el siguiente comando para enumerar temas y verificar que se haya creado el tema:

docker-compose exec kafka kafka-topics.sh --list --zookeeper zookeeper:2181

Debería ver YourTopicName entre los temas.

Paso 4: Producción y consumo de mensajes

Para probar más a fondo su configuración, puede producir y consumir mensajes con los scripts de productor y consumidor de la consola Kafka.

Producción de mensajes:

En el contenedor de Kafka, ejecute:

docker-compose exec kafka kafka-console-producer.sh --broker-list localhost:9092 --topic YourTopicName

Después de ejecutar el comando, puede escribir mensajes en la consola. Presione Ctrl+D para enviar mensajes.

Consumo de mensajes:

Abra otra sesión de terminal, acceda nuevamente al contenedor de Kafka y ejecute:

docker-compose exec kafka kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic YourTopicName --from-beginning

Deberías ver los mensajes que generaste anteriormente.

Paso 4: crea un tema de Kafka (opcional)

De forma predeterminada, Docker crea temas definidos con la variable KAFKA_CREATE_TOPICS en el archivo docker-compose.yaml. Pero aún puedes crear nuevos temas de Kafka con el siguiente comando:

docker-compose exec kafka kafka-topics.sh --create --topic NewTopicName --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

Reemplace "NewTopicName" con el nombre del nuevo tema. El comando anterior inicializa un tema nuevo y lo configura con una única partición y una única réplica, a través de un intermediario Kafka en el puerto 9092.

A continuación, enumere los temas para verificar que se creó el tema:

docker-compose exec kafka kafka-topics.sh --list --zookeeper zookeeper:2181

Esto enumerará todos los temas, incluidos los creados anteriormente.

NOTA: Debido a limitaciones en los nombres de métricas, los argumentos con un punto ('.') o un guión bajo ('_') pueden entrar en conflicto. Para evitar problemas es mejor utilizar uno, pero no ambos.

Conclusión

Ya ha creado con éxito un tema de Kafka utilizando Docker Compose y ha verificado su funcionalidad produciendo y consumiendo mensajes. Esta configuración no sólo simplifica el proceso de gestión de Kafka, sino que también proporciona un entorno escalable y fácilmente reproducible para sus aplicaciones de streaming. Ya sea que esté desarrollando localmente o implementando en un entorno de producción, Docker Compose con Kafka ofrece un poderoso conjunto de herramientas para simplificar las canalizaciones de transmisión de datos.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.