Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐍 Pipeline de Datos en Tiempo Real con Kafka y Python

License: MIT Python Version Docker

Este proyecto implementa un pipeline de datos en tiempo real de principio a fin utilizando Python y Apache Kafka, todo orquestado con Docker Compose. La aplicación simula el envío de datos de sensores a un topic de Kafka, que luego son leídos y procesados por un consumidor en tiempo real.

Arquitectura del Sistema

El entorno levanta un sistema completo que demuestra un patrón de arquitectura orientada a eventos.

  • Productor: Un servicio en Python que genera mensajes JSON y los publica en un topic de Kafka.
  • Consumidor: Un servicio en Python que se suscribe al topic y procesa los mensajes recibidos.
  • Kafka: El broker de mensajería que actúa como intermediario, desacoplando el productor del consumidor.
  • Zookeeper: El servicio de coordinación esencial para la gestión del clúster de Kafka.

✨ Características

  • Pipeline Completo: Incluye tanto un productor como un consumidor para un ciclo de datos completo.
  • Contenerizado: Todo el entorno está definido en Docker y Docker Compose para un despliegue rápido y consistente (docker compose up).
  • Configuración Externa: Configuración limpia y centralizada a través de archivos de entorno (.env) por servicio.
  • Dockerfile Optimizado: Uso de un Dockerfile multi-etapa para crear una imagen final ligera y segura.
  • Reutilización de Imagen: Demuestra cómo un único Dockerfile puede servir para múltiples servicios (productor y consumidor) sobrescribiendo el comando de ejecución.

📋 Requisitos Previos

  • Docker Engine
  • Docker Compose (V2 recomendado, comando: docker compose)

🚀 Inicio Rápido (Docker Compose)

Esta es la forma recomendada para levantar todo el pipeline.

Levanta los servicios: Este comando construirá la imagen de Python y levantará todos los contenedores en segundo plano. bash docker compose up -d --build


🔎 Verificando el Flujo de Datos

Puedes ver el sistema en acción revisando los logs de los contenedores.

  • Ver los logs del productor (los mensajes que se envían):

    docker compose logs -f kafka-producer-app

    Verás líneas como: Mensaje enviado al topic 'asset_stream'...

  • Ver los logs del consumidor (los mensajes que se reciben):

    docker compose logs -f kafka-consumer-app

    Verás los datos JSON completos que se están recibiendo en tiempo real.


⚙️ Configuración

Para modificar el comportamiento de las aplicaciones, edita los archivos correspondientes en la carpeta env/.

Por ejemplo, para cambiar el topic o el intervalo de mensajes del productor, modifica env/producer.env:

# env/producer.env
KAFKA_BROKER=kafka:29092
TOPIC_NAME=telemetry_data  # Cambiado de asset_stream
SLEEP_TIME_S=2             # Cambiado de 5

About

Productor Kafka en Python para alimentar el lab de Strimzi

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages