Ubuntu Linux에서 RabbitMQ를 설치해보자!
1. RabbitMQ 소개
Pivotal에서 만든 오픈 소스 MQ이다.
Queue의 성격이 강하기 때문에 메시지를 별도로 저장하지는 않는다. 메시지를 로그로 남기는 Kafka와의 차이점이라고 할 수 있다.
또 Kafka는 TCP 기반 메시지 브로커인데, RabbitMQ는 HTTP, WebSocket, MQTT, AMQP 등 여러 프로토콜을 지원한다. Kafka는 애플리케이션에서 처리가 필요한 부분이다.
2. 사전확인
$ apt list --installed rabbitmq-server
Listing... Done
3. apt를 통한 설치
$ sudo apt install rabbitmq-server Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl erlang-syntax-tools erlang-tools erlang-xmerl libltdl7 libodbc1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libsctp1 python python-minimal python2.7 python2.7-minimal Suggested packages: erlang erlang-manpages erlang-doc xsltproc fop erlang-ic-java libmyodbc odbc-postgresql tdsodbc unixodbc-bin lksctp-tools python-doc python-tk python2.7-doc binutils binfmt-support The following NEW packages will be installed: erlang-asn1 erlang-base erlang-corba erlang-crypto erlang-diameter erlang-edoc erlang-eldap erlang-erl-docgen erlang-eunit erlang-ic erlang-inets erlang-mnesia erlang-nox erlang-odbc erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssh erlang-ssl erlang-syntax-tools erlang-tools erlang-xmerl libltdl7 libodbc1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libsctp1 python python-minimal python2.7 python2.7-minimal rabbitmq-server 0 upgraded, 35 newly installed, 0 to remove and 14 not upgraded. Need to get 28.5 MB of archives. After this operation, 57.7 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython2.7-minimal amd64 2.7.15-4ubuntu4~18.04 [335 kB] Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python2.7-minimal amd64 2.7.15-4ubuntu4~18.04 [1,295 kB] Get:3 http://archive.ubuntu.com/ubuntu bionic/main amd64 python-minimal amd64 2.7.15~rc1-1 [28.1 kB] Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libpython2.7-stdlib amd64 2.7.15-4ubuntu4~18.04 [1,915 kB] Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 python2.7 amd64 2.7.15-4ubuntu4~18.04 [239 kB] Get:6 http://archive.ubuntu.com/ubuntu bionic/main amd64 libpython-stdlib amd64 2.7.15~rc1-1 [7,620 B] Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 python amd64 2.7.15~rc1-1 [140 kB] Get:8 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-base amd64 1:20.2.2+dfsg-1ubuntu2 [7,323 kB] Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-asn1 amd64 1:20.2.2+dfsg-1ubuntu2 [724 kB] Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-mnesia amd64 1:20.2.2+dfsg-1ubuntu2 [724 kB] Get:11 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-runtime-tools amd64 1:20.2.2+dfsg-1ubuntu2 [178 kB] Get:12 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-crypto amd64 1:20.2.2+dfsg-1ubuntu2 [104 kB] Get:13 http://archive.ubuntu.com/ubuntu bionic/main amd64 erlang-public-key amd64 1:20.2.2+dfsg-1ubuntu2 [561 kB]
Adding group `rabbitmq' (GID 114) ... Done. Adding system user `rabbitmq' (UID 112) ... Adding new user `rabbitmq' (UID 112) with group `rabbitmq' ... Not creating home directory `/var/lib/rabbitmq'. Created symlink /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service → /lib/systemd/system/rabbitmq-server.service. Processing triggers for libc-bin (2.27-3ubuntu1) ... Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.24) ...
4. 설치 확인
$ service rabbitmq-server status ● rabbitmq-server.service - RabbitMQ Messaging Server Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-08-27 23:49:07 UTC; 6min ago Main PID: 3459 (rabbitmq-server) Tasks: 86 (limit: 4661) CGroup: /system.slice/rabbitmq-server.service ├─3459 /bin/sh /usr/sbin/rabbitmq-server ├─3472 /bin/sh /usr/lib/rabbitmq/bin/rabbitmq-server ├─3634 /usr/lib/erlang/erts-9.2/bin/epmd -daemon ├─3734 /usr/lib/erlang/erts-9.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -B i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/r ├─3855 erl_child_setup 65536 ├─3915 inet_gethost 4 └─3916 inet_gethost 4 Aug 27 23:49:00 buntu103 systemd[1]: Starting RabbitMQ Messaging Server... Aug 27 23:49:03 buntu103 rabbitmq[3460]: Waiting for rabbit@buntu103 Aug 27 23:49:03 buntu103 rabbitmq[3460]: pid is 3472 Aug 27 23:49:07 buntu103 systemd[1]: Started RabbitMQ Messaging Server.
5. 관리 기능 활성화
$ sudo rabbitmq-plugins enable rabbitmq_management The following plugins have been enabled: amqp_client cowlib cowboy rabbitmq_web_dispatch rabbitmq_management_agent rabbitmq_management Applying plugin configuration to rabbit@jinsbuntu... started 6 plugins.
관리 기능 추가하면 15672 포트가 오픈된다.
$ netstat -an | grep 15672 tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN