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.