RabbitMQ

2021. 6. 15. 15:48카테고리 없음

메시지 브로커.

 

 

 

 

Producer : 메시지 생성자

                   ↓

----  Broker (여기부터 RabbitMQ) ---

Exchange : Producer로부터 오는 메시지가 모이는 곳 (controller 같은?)

 

                   ↓   Binding : Exchange -> Queues로 이동하는 규칙 (mapping)

 

Queues : 메시지 쌓이는 곳

---- // Broker-----------------------

                   ↓

Consumer : Queue 구독자

 

 

 

 

Binding 종류

- direct : key가 정확하게 일치하는 queue에 전달 (key를 모든 queue에 중복으로 넣어 fanout처럼 사용도 가능) 

- topic : key 패턴이 일치하는 queue에 전달 (*는 1개의 단어, #는 0개 이상의 단어와 일치 )

            ex) a.*이면 a.b는 해당. a.b.c는 해당 안 됨.

                  a.#이면 a.b는 해당. a.b.c도 해당.

- headers : header가 일치하는 queue에 전달

- fanout : 연결된 모든 queue에 전달

 

 

 

 

Rabbit MQ 재기동 시, 모든 queue는 제거되므로 생성 시, queue의 Durable 옵션에 true를 줘야함.

Producer가 메시지 발송 시 PERSISTENT_TEXT_PLAIN 옵션을 줘야 메시지가 보존됨.