RabbitMQ - 이론, 실습(Ubuntu)

2023. 7. 31. 08:58개발/MQ

728x90
반응형

설명

RabbitMQ란 ?

RabbitMQ는 얼랭 (Erlang)으로 AMQP 를 구현한 오픈소스 메시지 브로커이다. 비동기 작업 큐(예: Celery)를 사용하려면 중간 단계에 MQ를 사용해야하는데 대표적인 큐에는 RabbitMq, ActiveMQ, Kafaka 등이 대표적이다.

AMQP

클라이언트가 메시지 미들웨어 브로커와 통신할 수 있게 해주는 메세징 프로토콜이다.

처리 순서

  1. Producer : 메시지 생성하고 발송하는 주체
  2. Exchange : Producer들에게서 전달받은 메시지들을 어떤 Queue들에게 발송할지 결정
    1. Direct : Routing key가 정확히 일치하는 Queue에 메시지 전송
    2. Topic : Routing key 패턴이 일치하는 Queue에 메시지 전송
    3. Headers : [key:value]로 이루어진 header 값을 기준으로 일치하는 Queue에 메시지 전송
    4. Fanout : 해당 Exchange에 등록된 모든 Queue에 메시지 전송
  3. Binding : Exchage에게 메시지를 라우팅 할 규칙을 지정하는 행위
  4. Queues : Queue 메시지를 쌓아둔 공간
  5. Consumer : 메시지를 수신하는 주체

RabbitMQ 설치

💡 준비물 : ubuntu 20.04.3

설치

$ apt-get update
$ apt install rabbitmq-server

// RabbitMQ 서비스가 자동으로 시작하도록 구성
$ systemctl enable rabbitmq-server

// RabbitMQ 서비스 구동
$ systemctl start rabbitmq-server

$ netstat -tnlp | grep 5672
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      -
tcp6       0      0 :::5672                 :::*                    LISTEN      -

RabbitMQ 관리자

계정 생성

// 계정 생성
$ rabbitmqctl add_user {id} {password}

// 생성한 계정에 관리자 권한 부여
$ rabbitmqctl set_user_tags {id} administrator

커밋 메시지는 서술적이어야 합니다.

관리자 페이지 활성화

$ rabbitmq-plugins enable rabbitmq_management
$ service rabbitmq-server restart

관리자 페이지

728x90
반응형

'개발 > MQ' 카테고리의 다른 글

Kafka - Java + Spring Boot + Docker + Kafka  (0) 2023.08.08
Kafka - Python + Docker + Kafka 실습  (0) 2023.08.08
Kafka - 이론, 실습(Ubuntu)  (0) 2023.07.31