Gestion de colas con RabbitMQ para el almacenamiento logs con Winston.
docker-compose.yml # Crea la red, imagenes y contenedores (RabbitMQ, Producer y Cnsumer)
├───consumer # Microservicio Consumer para gestión de Logs
| ├───consumers # Consumidores de las colas
| ├───controllers # Controladores (Winston)
| ├───logs # Almacenamiento de Logs
| ├───test # Archivos de Test
| ├───Dockerfile # Acciones sobre el contenedor
| └───index.js # Archivo de inicializacion (RabbitMQ)
├───service # Microservicio Service simulando un servicio cualquiera.
| ├───consumers # Consumidores de las colas
| ├───controllers # Controladores
| ├───test # Archivos de Test
| ├───Dockerfile # Acciones sobre el contenedor
| └───index.js # Archivo de inicializacion (RabbitMQ)
└───producer # Archivos para el contenerdor Consumer
├───config # Configuraciones (RabbitMQ)
├───controllers # Controladores (Métodos Routing y RPC de RabbitMQ)
├───routes # Rutas para recibir los Logs
├───test # Archivos de Test
├───Dockfile # Acciones sobre el contenedor
└───index.js # Utilidades comunes para todas las colecciones
-
Instalar Docker y Docker-compose:
-
Clonar el repositorio:
git clone https://github.com/JaimeRC/rabbitMQ-winston.git
-
Inicializar Docker-compose:
docker-compose up -d
Creating network "rabbitmq_app-network" with driver "bridge" Creating rabbitmq ... done Creating producer ... done Creating consumer ... done Creating service ... done
-
Verificar que las conexiones se han realizado correctamente:
-
docker logs -f producer
> producer_rabbitmq@1.0.0 start /src > node index.js Server init in port 8080 RabbitMQ connected in amqp://rabbitmq [*] Created queues in Routing method: logs -> info, error [*] Created queues in RPC method: amq.gen-C0E2GxWAoPxbGpFwz_5UFg 21307ae3-610c-4b54-b249-c3dc9ef70288
-
docker logs -f consumer
> consumer_rabbitmq@1.0.0 start /src > node index.js RabbitMQ connected in amqp://rabbitmq [*] Waiting for logs.
-
docker logs -f service
> service_rabbitmq@1.0.0 start /src > node index.js RabbitMQ connected in amqp://rabbitmq [*] Awaiting RPC requests
-
-
En el caso de que no se haya conectado correctamente, reiniciamos el contenedor que no se haya conectado correctamente:
docker restart consumer docker restart service docker restart producer