Saltar al contenido principal

RabbitMQ

Este documento describe la configuración e implementación del servicio RabbitMQ en el servidor gaia-williams-rmq-prod.


Descripción general​

RabbitMQ es un broker de mensajería que permite comunicación asíncrona entre microservicios mediante colas.
En esta implementación se ejecuta en un contenedor Docker, con persistencia de datos en disco y el plugin de administración habilitado.


Ubicación y despliegue​

  • Servidor: gaia-williams-rmq-prod
  • Script de inicio: /root/apps/rabbitmq/start.sh
  • Contenedor: rabbitmq
  • Imagen usada: rabbitmq:4.0-management

El contenedor se despliega con el siguiente script:

docker stop rabbitmq; docker rm rabbitmq; docker run -d   --name rabbitmq   -p 5672:5672   -p 15672:15672   --hostname rabbitmq --memory=2g   -e RABBITMQ_NODENAME=rabbit@rabbitmq   -v /root/apps/rabbitmq/data:/var/lib/rabbitmq   --restart unless-stopped   rabbitmq:4.0-management

Configuración principal​

  • Puertos expuestos:

    • 5672 → Puerto de conexión para clientes y aplicaciones.
    • 15672 → Puerto de acceso al panel de administración web.
  • Persistencia de datos:
    Los datos de RabbitMQ se almacenan en el directorio local:
    /root/apps/rabbitmq/data → montado en /var/lib/rabbitmq dentro del contenedor.

  • Memoria asignada:
    El contenedor tiene un límite de 2 GB de RAM.

  • Reinicio automático:
    Configurado con --restart unless-stopped para asegurar alta disponibilidad.


Acceso al panel de administración​

El panel de administración web de RabbitMQ está habilitado gracias a la imagen rabbitmq:management.
Se accede en la siguiente URL:

http://<IP-del-servidor>:15672

Desde ahí se pueden gestionar colas, exchanges, usuarios y monitorear el uso del sistema.


Operación y mantenimiento​

Iniciar/Detener el servicio​

El contenedor puede controlarse con los siguientes comandos:

# Detener RabbitMQ
docker stop rabbitmq

# Iniciar RabbitMQ
docker start rabbitmq

# Reiniciar RabbitMQ
docker restart rabbitmq

Logs del servicio​

Para visualizar los logs del contenedor:

docker logs -f rabbitmq

Persistencia​

Los datos (colas, mensajes, configuraciones) se guardan en:

/root/apps/rabbitmq/data

Esto asegura que, aunque el contenedor se reinicie o recree, la información no se pierde.