RabbitMQ 정의 및 사용법
이 포스트는 RabbitMQ의 정의 및 설치와 기본적인 사용 방법에 대해 다루고 있습니다.
RabbitMQ
RabbitMQ를 알기 전에 먼저 메시지큐Message Queue에 대해 알아야 합니다. 해당 내용은 Wikipedia - Message queue 항목에서 자세한 내용을 확인 할 수 있습니다.
RabbitMQ는 사용하기 쉽고 거의 모든 OS에서 사용이 가능하면서도 오픈 소스에 상업적인 지원이 가능합니다. 물론 수많은 개발 플랫폼에 의해 지원이 되고 있습니다.
RabbitMQ 설치
RabbitMQ 설치에 관련된 보다 자세한 정보는 RabbitMQ의 공식 웹사이트에서 확인 가능합니다.
CentOS
공식 홈페이지에서 설치 하는 방법에 대해 세 종류 정도로 나눠서 설명하고 있습니다.
RabbitMQ는 erlang을 기반으로 해서 만들어졌기 때문에 erlang이 없으면 설치를 해야 합니다. 이 방법에 대해서 공식 홈페이지에서는 패키지를 다운로드 받아서 설치하는 것을 추천하고 있습니다. erlang 다운로드 페이지에서 erlang rpm 패키지를 다운로드 받습니다.
그리고 CentOS니까 서버 rpm 패키지도 받아야겠죠. 포스트 작성 시점엔 rabbitmq-server-3.5.2-1.noarch.rpm 라는 파일명으로 제공하고 있습니다. 그럼 이 다운로드 받은 rpm 패키지들을 설치하고자 하는 서버에 업로드 합니다.
rabbitmq-server-3.5.2-1.noarch.rpm erlang-17.4-1.el6.x86_64.rpm
위처럼 rpm 파일들을 업로드 하면 되겠네요. 설치를 하기 전에 먼저 설치된 것이 있는지 확인을 해봅시다.
$ rpm -qa | grep rabbitmq $ rpm -qa | grep erlang
그냥 해봤습니다. 있으면 설치가 되어 있으니 사용만 하면 될 것 같습니다. 없으면 아래를 진행합니다.
$ rpm -Uvh erlang-17.4-1.el6.x86_64.rpm 준비 중... ########################################### [100%] 1:erlang ########################################### [100%]
우선 erlang부터 설치합니다. 위에 있는 커맨드를 실행하면 됩니다. 그리고 rabbitMQ 서버를 설치합니다.
$ rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc $ rpm -Uvh rabbitmq-server-3.5.2-1.noarch.rpm 준비 중... ########################################### [100%] 1:rabbitmq-server ########################################### [100%]
먼저 시그니처 키를 받지 않으면 경고 문구가 출력이 될 수 있습니다. 차례대로 커맨드를 실행하시면 됩니다.
그리고 RabbitMQ에서 필요로 하는 포트들이 있습니다. 상세한 설명은 Security and Ports 부분을 참조하시면 됩니다.
이제 RabbitMQ를 실행해 봅시다. 먼저 서버 기동시에 자동으로 서비스가 실행 되게 하려면 다음 커맨드를 입력합니다.
$ chkconfig rabbitmq-server on
그리고 실제 RabbitMQ 서버 사용 커맨드는 다음과 같습니다.
$ /sbin/service rabbitmq-server start $ /sbin/service rabbitmq-server stop $ /sbin/service rabbitmq-server restart
브로커를 관리하려면 다음과 같은 커맨드를 사용하세요. 이 외에 더 많은 정보는 rabbitmqctl 매뉴얼을 참조하세요.
$ rabbitmqctl stop # RabbitMQ 서버를 정지합니다. $ rabbitmqctl status # 구동중인지 체크합니다.
로그 파일은 기본적으로 /var/log/rabbitmq 디렉토리에 있습니다.
이제 터미널 말고 UI로 관리를 해봅시다. 이 부분의 자세한 내용은 Management를 참조하세요.
다음과 같은 커맨드로 우선 플러그인 활성화를 시킵니다.
$ rabbitmq-plugins enable rabbitmq_management The following plugins have been enabled: mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@... started 6 plugins.
그리고 혹시 모르니 RabbitMQ 서버를 재기동해주세요. 그다음 웹브라우저를 이용해 http://server-ip-or-name:15672로 접속해봅시다. RabbitMQ 로그인 화면이 나오면 성공입니다. 이제 로그인할 아이디와 권한을 줘야합니다. 아래의 커맨드를 실행하세요. password 부분은 임의로 정의하시면 됩니다.
$ rabbitmqctl add_user admin password $ rabbitmqctl set_user_tags admin administrator
그리고 다시 아까전 로그인 화면에서 로그인 해서 대시보드가 나오면 기본적인 설정은 끝났습니다.
그리고 File descriptors의 개수를 변경하려면 /etc/rabbitmq/rabbitmq-env.conf 파일을 만드신 후 ulimit -S -n 4096를 입력후 저장하시면 됩니다. 재기동하시는 것 잊지 마세요. 환경 구성 파일의 자세한 정보는 configure 링크를 확인하세요.