Implemente Apache Kafka con Docker Compose

Implemente Apache Kafka Con Docker Compose



Docker es un software de creación de contenedores gratuito y de código abierto que ha cambiado por completo el panorama de cómo los desarrolladores empaquetan e implementan aplicaciones. Docker nos permite empaquetar una aplicación y todas las dependencias requeridas en una sola entidad. Esto significa que podemos distribuir el paquete y que el entorno se puede replicar en casi todas las máquinas sin conflictos ni paquetes faltantes.

En este tutorial, aprenderemos cómo podemos implementar un clúster de Apache Kafka utilizando la ventana acoplable. Esto nos permite usar la imagen de la ventana acoplable proporcionada para activar rápidamente un clúster de Kafka en casi cualquier entorno.

Comencemos con lo básico y analicemos qué es Kafka.







¿Qué es Apache Kafka?

Apache Kafka es un sistema de mensajería de publicación y suscripción gratuito, de código abierto, altamente escalable, distribuido y tolerante a fallas. Está diseñado para manejar un flujo de datos de gran volumen, alto rendimiento y en tiempo real, lo que lo hace adecuado para muchos casos de uso, incluida la agregación de registros, análisis en tiempo real y arquitecturas basadas en eventos.



Kafka se basa en una arquitectura distribuida que le permite manejar grandes cantidades de datos en varios servidores. Utiliza un modelo de publicación-suscripción donde los productores envían mensajes a los temas y los consumidores se suscriben a ellos para recibirlos. Esto permite una comunicación desacoplada entre los productores y los consumidores, proporcionando una alta escalabilidad y flexibilidad.



¿Qué es la composición de Docker?

Docker compose se refiere a un complemento o herramienta de Docker para definir y ejecutar aplicaciones de varios contenedores. Docker nos compone para definir la configuración del contenedor en un archivo YAML. El archivo de configuración incluye las especificaciones del contenedor, como los servicios, las redes y los volúmenes que requiere una aplicación.





Usando el comando docker-compose, podemos crear e iniciar múltiples contenedores con un solo comando.

Instalación de Docker y Docker Compose

El primer paso es asegurarse de haber instalado la ventana acoplable en su máquina local. Puede consultar los siguientes recursos para obtener más información:



  • https://linuxhint.com/install_configure_docker_ubuntu/
  • https://linuxhint.com/install-docker-debian/
  • https://linuxhint.com/install_docker_debian_10/
  • https://linuxhint.com/install-docker-ubuntu-22-04/
  • https://linuxhint.com/install-docker-on-pop_os/
  • https://linuxhint.com/how-to-install-docker-desktop-windows/
  • https://linuxhint.com/install-use-docker-centos-8/
  • https://linuxhint.com/install_docker_on_raspbian_os/

Al momento de escribir este tutorial, la instalación de docker compose requiere instalar el escritorio de Docker en su máquina de destino. Por lo tanto, la instalación de docker compose como una unidad independiente está obsoleta.

Una vez que instalamos el Docker, podemos configurar el archivo YAML. Este archivo contiene todos los detalles que necesitamos para activar un clúster de Kafka utilizando un contenedor docker.

Configuración de Docker-Compose.YAML

Cree docker-compose.yaml y edítelo con su editor de texto favorito:

$ toque docker-compose.yaml
$ vim docker-compose.yaml

A continuación, agregue el archivo de configuración de la ventana acoplable como se muestra a continuación:

versión : '3'
servicios :
cuidador del zoológico :
imagen : bitnami / cuidador del zoológico : 3.8
puertos :
      - '2181:2181'
volúmenes :
      - 'zookeeper_data:/bitnami'
ambiente :
      - PERMITIR_ANONYMOUS_INICIAR SESIÓN =
kafka :
imagen : estibador. este / bitnami / kafka : 3.3
puertos :
      - '9092:9092'
volúmenes :
      - 'kafka_data:/bitnami'
ambiente :
      - KAFKA_CFG_ZOOKEEPER_CONEXIÓN = cuidador del zoológico : 2181
      - ALLOW_PLAINTEXT_LISTENER =
depende de :
      - cuidador del zoológico
volúmenes :
zookeeper_datos :
conductor : local
datos_kafka :
conductor : local

El archivo docker de ejemplo configura un Zookeeper y un clúster de Kafka donde el clúster de Kafka está conectado al servicio de Zookeeper para la coordinación. El archivo también configura los puertos y las variables de entorno para cada servicio para permitir la comunicación y el acceso a los servicios.

También configuramos los volúmenes con nombre para conservar los datos de los servicios incluso si los contenedores se reinician o se recrean.

Desglosemos el archivo anterior en secciones simples:

Comenzamos con el servicio Zookeeper usando la imagen bitnami/zookeeper:3.8. Luego, esta imagen asigna el puerto 2181 en la máquina host al puerto 2181 en el contenedor. También configuramos la variable de entorno ALLOW_ANONYMOUS_LOGIN en 'sí'. Finalmente, establecemos el volumen en el que el servicio almacena los datos como volumen zookeeper_data.

El segundo bloque define los detalles para configurar el servicio Kafka. En este caso, usamos la imagen docker.io/bitnami/kafka:3.3 que asigna el puerto de host 9092 al puerto de contenedor 9092. De manera similar, también definimos la variable de entorno KAFKA_CFG_ZOOKEEPER_CONNECT y establecemos su valor en la dirección de Zookeeper asignada a puerto 2181. La segunda variable de entorno que definimos en esta sección es la variable de entorno ALLOW_PLAINTEXT_LISTENER. Establecer el valor de esta variable de entorno en 'sí' permite el tráfico no seguro al clúster de Kafka.

Finalmente, proporcionamos el volumen en el que el servicio Kafka almacena sus datos.

Para garantizar que la ventana acoplable configure los volúmenes para Zookeeper y Kafka, debemos definirlos como se muestra en la sección de volúmenes. Esto configura los volúmenes zookeeper_data y kafka_data. Ambos volúmenes usan el controlador local, lo que significa que los datos se almacenan en la máquina host.

¡Ahí tienes! Un archivo de configuración simple que le permite hacer girar un contenedor de Kafka usando la ventana acoplable en pasos simples.

Ejecutar el contenedor

Para asegurarnos de que la ventana acoplable se está ejecutando, podemos ejecutar el contenedor desde el archivo YAML con el siguiente comando:

$ sudo ventana acoplable redactar

El comando debe ubicar el archivo de configuración YAML y ejecutar el contenedor con los valores especificados:

Conclusión

Ahora aprendió cómo puede configurar y ejecutar Apache Kafka desde un archivo de configuración YAML de composición de ventana acoplable.