rabbitmq 시작하기
RabbitMQ 시작하기
Installation on ubuntu
ubuntu 에 rabbitmq 를 설치하고 실제 동작시켜 보자.
본 글에서는 실제 ubuntu 피씨가 아닌 docker ubuntu image 를 사용하도록 한다.
Ubuntu image 실행
아래 명령어를 통해 도커 우분투 이미지를 실행하고 콘솔에 들어가도록 하자.
docker pull ubuntu
docker run -it ubuntu
sudo 및 curl 설치
기본 우분투 이미지에는 sudo 와 curl 명령어가 없기 때문에 아래 명령어를 통해 sudo 와 curl 을 설치해 준다.
apt-get update&&
apt-get install -y sudo &&
apt-get -y install curl
Erlang/OTP 다운로드
Rabbitmq 를 내부적으로 erlang/otp 를 사용하기 때문에 적합한 버젼을 설치해 주어야 한다.
하지만 현재 erlang 버전은 너무 오래되었기 때문에 rabbitmq 팀에서 별도의 erlang 을 관리하고 배포하고 있는데 이를 설치하기 위해 다음과 같은 절차를 거친다.
먼저 apt-key 에 다음 키를 추가한다.
apt-get install -y gnupg2 &&
apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
데비안 계열 운영체제가 레포지토리를 등록하기 위해서 다음 파일에 레포지토리를 등록해 주어야 한다.
이를 통해 apt-get 명령어가 해당 레포지토리를 찾고 패키지를 설치할 수 있다.
/etc/apt/sources.list.d/bintray.erlang.list 파일에
deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
를 추가하면 되며 아래와 같은 명령어를 통해 한번에 세팅할 수 있다.
cd /etc/apt/sources.list.d &&
touch bintray.erlang.list &&
echo "deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang" >> bintray.erlang.list &&
echo register finished! &&
cat bintray.erlang.list
등록한 레포지토리를 설치해준다.
apt-get update
RabbitMQ 및 rabbitmq-server 설치
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash && apt-get install -y rabbitmq-server
Getting started
서버 시작하기
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
큐 비우기
sudo rabbitmqctl purge_queue queue_name
Final dockerfile
FROM ubuntu
# set working directory
WORKDIR /
# update apt packages
RUN rm -rf /var/lib/apt/lists/*
RUN apt-get update
# install sudo and curl command
RUN apt-get install -y sudo && apt-get -y install curl
# register key for apt third party repository
RUN apt-get install -y gnupg2
RUN apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
# register repository
RUN cd /etc/apt/sources.list.d && touch bintray.erlang.list && echo "deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang" >> bintray.erlang.list && echo register finished! && cat bintray.erlang.list
# install repository
RUN apt-get update
RUN curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash
RUN apt-get install -y rabbitmq-server
EXPOSE 3001
EXPOSE 5672
EXPOSE 15672
CMD [ "rabbitmq-server","start" ]