본문 바로가기
MQ

[MQ] RabbitMQ

by 상국이 2021. 6. 10.
728x90

RabbitMQ ? 

 - Erlang 으로 AMQP를 구현한 메시지 브로커 시스템

 - Channel 이라는 개념을 통해 하나의 TCP 연결을 공유해서 사용할 수 있는 기능 제공

 

동작

1. 메시지를 발행하는 Producer에서 Broker의 Exchange로 메시지를 전달

2. Binding 규칙에 의해 연결된 Queue로 메시지 복사

3. Consumer에서 브로커의 Queue를 통해 메시지를 받아가서 처리

 

속성

- Name : Exchange 이름

- Type : 메시지 전달 방식 

  * Direct Exchange, Fanout Exchange, Topic Exchange, Headers Exchange

 - Durability : 브로커가 재시작 될 때 남아 있는지 여부

   * durable, transient

 - Auto-delete : 마지막 Queue 연결이 해제되면 자동 삭제

 

Exchange Type

Direct Exchange?

 - 메시지에 포함된 routing key를 기반으로 Queue에 메시지를 전달

 

Fanout Exchange?

 - routing key 관계없이 연결된 모든 Queue에 동일한 메시지를 전달

 

Topic Exchange?

 - routing key 전체가 일치 하거나 일부 패턴과 일치하는 모든 Queue로 메시지 전달

 - Consumer에서 다양한 publish/subscibe 패턴 구현에 활용될 수 있음

 

Headers Exchange

 - binding key는 무시되고, 헤더 값이 바인딩 시 지정된 값과 같은 경우에만 일치하는 것으로 간주

 

Queue

 속성

 - Name : Queue의 이름

 - Durability

 * durable : 브로커가 재시작 되어도 디스크에 저장되어 남아있음

 * transient : 브로커가 재시작시 사라짐

 - Auto delete : 마지막 Consumer가 구독을 끝내는 경우 자동 삭제

 - Arguments : 메시지 TTL, Max Length 같은 추가 기능을 명시

 

RabbitMQ vs Kafka vs ActiveMQ ?

https://developing-countries.tistory.com/9

 

오픈 소스 Message Queue

RabbitMQ vs Kafka vs ActiveMQ ?  - 비동기 통신을 제공하고, 보낸 사람과 받는 사람을 분리(공통) RabbitMQ 빠르고 쉽게 구성 할 수 있으며 직관적 AMQT 프로토콜을 구현해놓은 프로그램 신뢰성, 유연한 라

developing-countries.tistory.com

 

728x90

'MQ' 카테고리의 다른 글

[MQ] ActiveMQ  (0) 2021.06.10
[MQ] RabbitMQ vs Kafka vs ActiveMQ  (0) 2021.06.10
[MQ] Message Queue?  (0) 2021.06.10

댓글