RabbitMQ란
AMQP를 구현한 메시지 브로커 입니다. ISO 준 AMQP를 구현했으며, 비동기처리를 위한 메시지 큐 브로커 입니다. Erlang과 Java로 만들어졌으며 분산처리를 위한 MQ입니다.
RabbitMQ는 다양한 언어로된 RabbitMQ Client를 지원하고 있고 공식적인 온라인 문서에서는 대표적인 언어들에 대하여 소스코드를 예제로 공개하고있습다.
이번 글에서는 RabbitMQ 예제를 알아보기 전에 기본적인 용어들을 알아보겠습니다.
Producer – 메시지를 보내는 Application
Consumer – 메시지를 받는 User Application
Publish – Producer가 메시지를 보냄
Subscribe – Consumer가 메시지를 수신하기 위해 Queue를 실시간으로 리스닝 하기로 만든다
Queue – 메시지를 저장하는 버퍼(Queue는 Exchange에 Binding된다)
Bindings – Exchange와 Queue를 연결
RoutingKey – Exchange를 생성하거나 메시지를 Publish할 때 사용하는 Key
Exchange가 Queue에 메시지를 전달할지 결정하는 Key
Exchange – Producer가 전달한 메시지를 Queue에 전달하는 역할
메시지가 Queue에 직접 전달되는 것이 아니라 Exchange Type이라는 속성에 정의한데로 동작
Type |
설명 |
특징 |
Fanout |
알려진 모든 Queue에 메시지 전달 |
Broadcast |
Direct |
지정된 RoutingKey를 가진 Queue에만 메시지 전달 |
Unicast |
Topic |
지정된 패턴 바인딩 형태에 일지하는 Queue에만 메시지 전달 (# 은 여러단어, *은 한 단어를 통합한 문자열 패턴 매칭) |
Multicast |
Header |
헤더에 포함된 Key = Value의 일치조건에 따라서 메시지 전달 |
Multicast |
Exchange Type에 따른 메시지 전송을 알기 쉽게 설명한 페이지 -> http://killins.egloos.com/m/3025514
'프로그래밍 > RabbitMQ' 카테고리의 다른 글
Rabbit MQ Server 설치 (Windows 기준) (0) | 2016.05.31 |
---|