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 옵션을 줘야 메시지가 보존됨.