Para configurar rápidamente un entorno de desarrollo para RabbitMQ, se recomienda utilizar Docker. Dado que RabbitMQ está desarrollado utilizando Erlang, el proceso de instalación convencional implica instalar primero Erlang y luego RabbitMQ, lo que puede resultar bastante engorroso. El uso de Docker simplifica este proceso con un solo comando.
Recomendación: Es aconsejable utilizar Docker para implementar el entorno de desarrollo. Es simple, conveniente para mantener múltiples entornos, y no se necesita dedicar demasiado tiempo a la configuración del entorno. La instalación de Docker en MacOS y Linux es sencilla y se puede encontrar en línea. Si bien Windows 10 también admite la instalación de Docker, es mejor instalar una máquina virtual de Linux para pruebas en el backend, ya que el sistema Windows no es muy conveniente para ese propósito.
Implementación mediante Docker
Comando de instalación inicial
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
Explicación: El comando anterior descarga y arranca una instancia de contenedor de RabbitMQ, abriendo dos puertos, 5672 y 15672. El puerto 15672 es el puerto de la consola de gestión, mientras que el 5672 es el puerto al que necesitamos acceder al escribir código.
Respecto a la versión de la imagen de Docker de RabbitMQ, el ejemplo utiliza la versión 3-management. La última versión se puede encontrar en el repositorio oficial de imágenes de Docker aquí.
Gestión del contenedor de RabbitMQ
Para detener el contenedor de RabbitMQ:
docker stop rabbitmq
Para volver a iniciar el contenedor de RabbitMQ:
docker start rabbitmq
Nota: El contenedor de Docker solo necesita ser instalado una vez, y después se puede iniciar y detener utilizando los comandos start/stop.
Consola de gestión de RabbitMQ
Accede a la consola de gestión de RabbitMQ en: http://localhost:15672/ Nombre de usuario y contraseña predeterminados: guest / guest
Consejo: Si estás utilizando una máquina virtual, sustituye 'localhost' por la dirección IP de la máquina virtual.
Captura de pantalla: