RabbitMQ의 구성요소로는 Producer, Exchange, Queue, Consumer가 있습니다.
RabbitMQ를 이용해 데이터를 처리하는 과정은 크게 다음 4단계 과정을 거칩니다.
- Producer가 RabbitMQ로 메세지를 보낸다
- Exchange는 Producer로부터 받은 메세지의 routing key를 참고해 해당하는 queue로 메세지를 전달한다
- queue는 메세지를 일시적으로 저장하는 버퍼 역할을 한다
- queue를 구독하고 있는 Consumer는 메세지를 가져와 처리한다
Exchange 유형
여기서 주목할 부분은 Exchange입니다. RabbitMQ에는 4가지 유형의 Exchange가 있고, Exchange를 이용해 유연하게 메세지를 처리할 수 있습니다.
Direct Exchange
- 메세지를 routing key에 따라 특정 queue로 전달하는 방식
- routing key와 동일한 queue로 메세지 전달
- 하나의 routing key에 여러 queue가 할당될 수 있어 1:N 매칭이 가능
Topic Exchange
- routing key를 패턴 기반으로 정의하여 여러 queue에 유연하게 전달하는 방식
- 와일드카드 또한 사용할 수 있어 동적으로 라우팅이 필요한 경우 사용
Fanout Exchange
- 브로드캐스트 방식
- 한 번 발행하면 모든 queue에 메세지 전송
Headers Exchange
- 메세지 속성에 기반한 복잡한 라우팅이 필요할 때
- routing key 대신 header의 값을 이용해 라우팅
- direct exchange나 topic exchange보다 성능이 떨어질 수 있음
'framework > spring' 카테고리의 다른 글
Spring RabbitMQ 적용하기 (0) | 2025.03.30 |
---|---|
Spring DispatcherServlet은 왜 필요할까? (1) | 2025.02.17 |