본문 바로가기
개발관련 자료

안드로이드스튜디오에서 RabbitMQ 사용하기 #1 - RabbitMQ 설치하기 (CentOS 7 기준)

by jinu957 2021. 5. 25.
728x90

 

좀 오래 되기는 했지만 재작년에 서비스플랫폼을 개발하기 위하여 수집·처리·분배를 담당하는 엔진이 필요했었는데 여러가지(카프카, 액티브엠큐, 레빗엠큐, 심지어 어스웜 까지) 큐 들을 검토했는데 그중에 레빗엠큐가 가장 서비스 성격에 맞는것으로 결정되어 레빗엠큐를 사용하여 서비스플랫폼을 개발하였습니다.

그 경험을 되살려 레빗엠큐에 대하여 설명하려고 하며 첫번째로 CentOS에 설치하는 과정부터 설명 드리도록 하겠습니다.

 

서버 OS 및 버전 : CentOS 7.x 버전 (요즘 핫이슈인 오라클 클라우드 평생무료 서비스로 제공되는 서버입니다.)

RabbitMQ 버전 : 3.8.2

 

1단계)

먼저 RabbitMQ 설치를 위하여 yum 버전을 최신 상태로 만듭니다.

아래 작업은 root 계정으로 하셔야합니다.

 

$>sudo yum install epel-reease

$>sudo yum update

저는 업데이트 할게 없어서 바로 끝났는데 업데이트 항목이 있으면

중간에 [y/d/N]. <= y 엔터 이후 업데이트 진행

 

 

$>sudo reboot

 

 

2단계)

RabbitMQ는 Erlang로 만들어졌기때문에 Erlang도 설치해주여야 합니다.

 

$>cd ~ 

홈디렉토리 이동

$>wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

 

$>rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

 

$>yum install erlang

중간에 y누르시고 좀더 기다리시면 Complete! 와 함께 설치 완료되며 제대로 설치가 되었는지 erl 명령어로 실행해봅니다.

정상적으로 설치되었다면 위 그림처럼 Erlang가 실행됩니다. (빠져나가기는 컨트롤+C 두번)

 

 

3단계)

이제 준비는 다 되었으니 RabbitMQ를 설치합니다.

 

https://www.rabbitmq.com/install-rpm.html#downloads

 

Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE) — RabbitMQ

Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE) This guide covers RabbitMQ installation on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE). RabbitMQ is included in standard Fedora and RHEL repositories.

www.rabbitmq.com

먼저 위 사이트에 들어가서 설치할 수 있는 버전을 확인합니다. 

제가 글작성 시점에는 CentOS 7.x버전으로 3.8.16 버전이 올라와 있네요

 

$>rpm -Uvh https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16-1.el7.noarch.rpm

RabbitMQ 설치는 금방 끝납니다.

 

 

4단계)

이제 RabbitMQ 서비스를 활성화하고 Start를 합니다.

$>sudo systemctl enable rabbitmq-server

$>sudo systemctl start rabbitmq-server

 

 

5단계) 

RabbitMQ 매니지먼트 콘솔을 활성화하여 웹브라우저에서 RabbitMQ 서버 프로세스를 모니터링 할 수 있도록 해줍니다.

 

 

6단계) 이제 RabbitMQ에서 사용할 계정을 생성하고 권한을 부여합니다.

 

$>sudo rabbitmqctl add_user 계정명 계정비밀번호

저는 계정명을 withu로 하였습니다. 

 

$>sudo rabbitmqctl list_users 

로 현재 생성된 계정을 확인하실 수 있으며 방금 생성한 withu 계정이 보이고 tags는 아무것도 없네요

그리고 guest 계정이 administrator로 생성되어 있는 것을 볼 수 있습니다.

(guest 계정은 어차피 안쓸거니까 지워주는게 좋습니다)

 

$>sudo rabbitmqctl set_user_tags withu administrator    => administrator권한 부여

$>sudo rabbitmqctl delete_user guest          => guest계정 삭제

$>sudo rabbitmqctl list_users 로 다시 조회해보시면 guest계정은 삭제되고 withu계정에는 administrator권한이 생긴걸 볼수있습니다.

 

다음은 RabbitMQ에서 사용한 virtual host를 생성합니다.

$>sudo rabbitmqctl add_vhost 호스트명

vhost는 메시지큐를 구분하기위한 가장큰 단위라고 일단 알아두시면 됩니다. 자세한건 나중에....

 

이제 마지막으로 새로 생성한 계정이 vhost에 접근하기 위한 퍼미션을 부여합니다.

 

$>sudo rabbitmqctl set_permissions -p vhost 계정명 “.*” “.*” “.*”

계정명 뒤에는 3개의 퍼미션을 주시는데 차례대로 configure permissions, write permissions, read permissions 입니다.

3개 전부 모든 권한을 부여합니다.

참고로 위 계정 생성부터 이하 설정과정은 웹페이지로 제공되는 메니지먼트 콘솔에서도 가능합니다.

 

이제 모든 설치와 설정 작업이 끝났고 설치된 서버의 아이피주소에 포트번호 15672를 붙여서 브라우저로 접속해보시면 레빗엠큐 메니지먼트 콘솔이 나타날겁니다. ( http://서버IP주소:15672 )

첫화면은 로그인 페이지인데 위에서 생성하신 계정으로 접속하시면 됩니다.

 

혹시 접속이 안되시는 분들은 리눅스의 방화벽을 열어주셔야 합니다.

$>firewall-cmd --permanent --zone=public --add-port=15672/tcp

$>firewall-cmd --reload

 

방화벽이 제대로 열렸다면 아래와 같은 로그인 창이 나타납니다.

로그인 하시고 Exchanges 탭으로 가보시면 위에서 생성한 vhost가 보일겁니다.

 

 

이제 설치는 제대로 끝났으니 다음에는 안드로이드 개발에 필요한 테스트용 큐, 익스체인지 등등을 간단하게 구성하고 안드로이드에서 메시지 전송과 수신하는 예제를 다루어 보도록 하겠습니다. 

 

 

728x90

댓글