RabbitMQ

[RabbitMQ] 기초 개념 - 3 (Pub/Sub)

zamezzz 2022. 4. 12. 17:27

이번 포스트에서는 Publish/Subscribe 패턴에 대해 정리하겠습니다.


이 패턴은 하나의 메시지를 여러 Consumer에게 전송하는 패턴입니다.

이전 포스트에서는 Producer가 Queue에 직접 메시지를 전송하고, 그 Queue가 여러개의 Consumer에게 메시지를 전송했습니다.

Exchange

기존 있었던 요소 중 Producer, Queue, Consumer를 기억하실거에요.

 

RabbitMQ의 핵심 메시징 모델은 Producer가 직접 Queue에 메시지를 전달하지 않는다는 것인데,

 

여기에서 Exchange라는 요소가 추가됩니다.


중간에 보이는 파란색 X가 Exchange 입니다.


Producer는 Exchange에만 메시지를 보낼 수 있습니다.

 

Exchange의 역할은 간단한데, Producer로 부터 메시지를 수신하고 Queue들로 메시지를 전송합니다.

Exchange에서는 규칙이 필요합니다.

- 메시지가 특정 Queue에만 추가되는지...

- 많은 Queue들에 추가되는지...

- 버려야하는지 등등 을 결정하게 되는데...

- 등등


이는 exchange type이라는 규칙에 의해 정의됩니다.

RabbitMQ에서는 direct, topic, headers, fanout과 같은 유형들을 사용할 수 있습니다.

 

예제에서는 fanout하나만 설명하고 넘어가는데, 나머지는 다음 글에 등장할 것 같습니다.


fanout은 수신한 모든 메시지를 대기하고 있는 모든 Queue로 전송하는 브로드캐스트 방식입니다.



Binding


Exchage와 Queue의 관계를 Binding이라고 합니다.

반응형

'RabbitMQ' 카테고리의 다른 글

[RabbitMQ] Exchange Type  (0) 2022.05.18
[RabbitMQ] 기초 개념 - 5 (Topic)  (0) 2022.05.16
[RabbitMQ] 기초 개념 - 4 (Routing)  (0) 2022.05.16
[RabbitMQ] 기초 개념 - 2 (Work queues)  (0) 2022.04.08
[RabbitMQ] 기초 개념 - 1  (0) 2022.04.01