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
'MQ' 카테고리의 다른 글
[MQ] ActiveMQ (0) | 2021.06.10 |
---|---|
[MQ] RabbitMQ vs Kafka vs ActiveMQ (0) | 2021.06.10 |
[MQ] Message Queue? (0) | 2021.06.10 |
댓글