본문 바로가기

리눅스

RabbitMQ를 설치하고 테스트하는 방법

728x90

RabbitMQ를 설치하고 테스트하는 방법

RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 구현한 오픈 소스 메시지 브로커입니다. 메시지 브로커는 애플리케이션 간에 메시지를 전달하는 역할을 합니다. RabbitMQ는 다양한 언어와 플랫폼을 지원하며, 고가용성과 확장성이 뛰어납니다.

 

RabbitMQ는 다양한 애플리케이션에서 사용됩니다. 예를 들어,

  • 웹 서비스 간의 통신
  • 마이크로서비스 아키텍처
  • 이벤트 기반 시스템
  • 챗봇
  • 로깅 및 모니터링

RabbitMQ는 애플리케이션 간의 통신을 쉽게 하도록 설계되었습니다. 메시지 브로커를 사용하면 애플리케이션이 서로 직접 통신할 필요가 없습니다. 메시지 브로커가 애플리케이션 간에 메시지를 전달합니다. 이로 인해 애플리케이션을 더 쉽게 개발하고 테스트할 수 있습니다.

 

RabbitMQ는 고가용성과 확장성이 뛰어납니다. RabbitMQ는 클러스터로 구성할 수 있습니다. 클러스터는 여러 노드로 구성된 하나의 RabbitMQ입니다. 클러스터는 장애를 견딜 수 있고 애플리케이션의 가용성을 높일 수 있습니다.

 

RabbitMQ는 다양한 언어와 플랫폼을 지원합니다. RabbitMQ는 Java, Python, PHP, Ruby, C#, JavaScript 등 다양한 언어를 지원합니다. 또한, RabbitMQ는 Linux, Windows, macOS 등 다양한 플랫폼을 지원합니다.

RabbitMQ는 애플리케이션 간에 메시지를 전달하는 데 사용할 수 있는 강력한 도구입니다. RabbitMQ는 다양한 애플리케이션에서 사용되며, 고가용성과 확장성이 뛰어납니다.

 

출처-https://www.cloudamqp.com/img/blog/rabbitmq-beginners-updated.png

 

  1. 사용자가 웹 애플리케이션에 PDF 생성 요청을 보냅니다.
  2. 웹 애플리케이션(the producer)은 이름, 이메일 등 요청의 데이터가 포함된 메시지를 RabbitMQ로 보냅니다.
  3. 교환기는 생산자의 메시지를 수락하고 PDF 생성을 위한 올바른 메시지 큐로 라우팅합니다.
  4. PDF 처리 작업자(the consumer)가 작업 메시지를 수신하고 PDF 처리를 시작합니다.

RabbitMQ 설치

1. 우분투 시스템에 로그인하고 터미널을 엽니다.

 

2. 다음 명령어를 사용하여 RabbitMQ 패키지 저장소를 추가합니다.

echo "deb http://packages.erlang-solutions.com/ubuntu `lsb_release -cs` contrib" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

3. RabbitMQ 공개 키를 가져와서 저장합니다.

wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -

4. 패키지 목록을 업데이트하고 RabbitMQ를 설치합니다.

sudo apt update
sudo apt install rabbitmq-server

5. RabbitMQ 버전을 확인합니다.

$ rabbitmqctl --version
3.9.13

RabbitMQ 서비스 관리

1. RabbitMQ 서비스를 시작합니다.

sudo systemctl --now enable rabbitmq-server

2. RabbitMQ 서비스가 정상적으로 실행 중인지 확인합니다.

sudo systemctl status rabbitmq-server

RabbitMQ 관리 인터페이스 접속

1. RabbitMQ 관리 인터페이스를 사용하기 위해 RabbitMQ Management Plugin을 활성화합니다.

sudo rabbitmq-plugins enable rabbitmq_management
$ sudo rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@node-01:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@node-01...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.
$ netstat -nlpt | grep beam
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      72412/beam.smp      
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      72412/beam.smp      
tcp6       0      0 :::5672                 :::*                    LISTEN      72412/beam.smp
728x90

2. 웹 브라우저에서 다음 URL을 엽니다.

http://localhost:15672

r1

 

3. 로그인 화면이 표시되면 기본 사용자 이름과 암호로 로그인합니다.

  • 기본 사용자 이름은 "guest"이고 암호도 "guest"입니다.

4. 외부에서 웹 관라자 화면에 접속하기 위한 설정을 합니다.

  • 웹 관리자 화면에 액세스할 수 있는 사용자를 생성합니다.
  • 사용자: radmin, 암호 : radmin
rabbitmqctl add_user <username> <password>
rabbitmqctl add_user radmin radmin

 

sudo rabbitmqctl list_users
$ sudo rabbitmqctl list_users
Listing users ...
user    tags
radmin  [management]
guest   [management]
  • 웹 관리자 화면에 액세스할 수 있는 사용자에게 권한을 부여합니다.
rabbitmqctl set_permissions -p / <username> ".*": ".*": ".*"
sudo rabbitmqctl set_permissions -p '/' radmin ".*" ".*" ".*"
  • set_user_tags 명령어를 사용하여 radmin 사용자의 관리 태그를 management로 할당합니다.
sudo rabbitmqctl set_user_tags radmin management

 

sudo systemctl restart rabbitmq-server

 

sudo rabbitmqctl list_permissions
$ sudo rabbitmqctl list_permissions
Listing permissions for vhost "/" ...
user    configure       write   read
guest   .*      .*      .*
radmin  .*      .*      .*

 

r2

RabbitMQ 테스트

1. RabbitMQ 관리 인터페이스에 로그인한 후, "Queues" 탭으로 이동합니다.

 

2. "Add a new queue"를 클릭하여 새 큐를 생성합니다. 큐의 이름을 입력하고 "Add queue"를 클릭합니다.

r3

 

3. 생성한 큐의 상세 정보가 표시되면 성공적으로 RabbitMQ를 설치하고 테스트한 것입니다.

r4

 

위의 단계를 따라하면 RabbitMQ를 우분투에 설치하고 테스트할 수 있습니다.

 

728x90