배달 플랫폼에서 가맹점과 사용자 Server 간의 비동기 주문 처리를 하기 위해서 중개자 역할의 RabbitMQ 를 적용하여 사용하려고 한다.
이를 Docker 에 올리고 Container 까지 생성 되는 것을 확인 했으나 접속하는 순간 접속이 되지 않는 이슈가 발생한다.
이러한 이슈는 왜 발생한 것일까? 이를 해결해보자.
RabbitMQ 에서 15672 Port 를 사용하여 관리 및 모니터링을 위한 HTTP 기반의 API 를 제공합니다.
이를 사용하기 위해서 접근했지만 접근이 되지 않는 이슈가 발생한 것입니다.
하지만 이 관리 및 모니터링을 사용하기 위해서는 활성화를 해주어야 합니다. 이처럼 단순하게 RabbitMQ 를 이미지를 가져와 실행 하였다면 모니터링 기능에 대해서 활성화가 되어 있지 않기 때문에 화면 접근이 실패하는 것
Docker 환경에서 모니터링을 할 수 있도록 활성화를 해주면 됩니다. 실행 중인 container 의 터미널로 접속하여 아래 명령어를 통해 활성화를 합니다.
rabbitmq-plugins enable rabbitmq_management
활성화 처리가 되었다. 다시 접속을 해보자. 이후 정상적으로 접속이 된다.
만약 image 를 build 하고 실행 하면서 활성화 할 수는 없을까?
Docker Image 를 가져올 때 management
가 활성화가 된 버전을 가져오면 별도의 활성화를 하지 않고도 사용할 수 있다.
version: '3.7'
services:
rabbitmq-delivery:
container_name: rabbitmqDelivery
image: rabbitmq:management
ports:
- "5672:5672" # rabbit amqp port
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=1234