RabbitMQ

Code_Builder·2024년 8월 14일
0
post-thumbnail

RabbitMQ 란?

데이터(메시지)송신자(프로듀서)로부터 수신자(컨슈머)에게 전달하는 중간 매개체


기본 구성 요소

메시지(Message)

  • 메시지는 RabbitMQ를 통해 전달되는 데이터 단위입니다. 예를 들어, 사용자 등록 정보나 주문 내역이 메시지가 될 수 있습니다.

프로듀서(Producer)

  • 메시지를 생성하고 RabbitMQ에 보내는 역할
    ex) 웹 애플리케이션이 사용자 등록 정보를 RabbitMQ에 보내는 경우 프로듀서가 됨

    큐(Queue)

  • 메시지를 저장하는 장소로써, 메시지는 큐(FIFO 방식)에 저장되었다가 소비자에게 전달

컨슈머(Consumer)

  • 큐에서 메시지를 가져와 처리하는 역할
    ex) 이메일 발송 서비스가 큐에서 사용자 등록 정보를 가져와 환영 이메일을 보내는 경우 컨슈머가 됨

익스체인지(Exchange)
- 메시지를 적절한 큐로 라우팅하는 역할

프로듀서는 메시지를 직접 큐에 보내지 않고,익스체인지를 통해 메시지를 적절한 큐로 전달


익스체인지 유형

  • Direct Exchange
    • 라우팅 키가 정확히 일치하는 큐로 메시지를 전달
  • Topic Exchange
    • 라우팅 키의 패턴을 사용하여 메시지를 라우팅
  • Fanout Exchange
    • 라우팅 키를 무시하고 교환기에 바인딩된 모든 큐로 메시지를
      브로드캐스트
      (한 송신자가 여러 수신자에게 동시에 메시지를 전송)함
  • Headers Exchange
    • 라우팅 키 대신 메시지의 헤더를 기반으로 메시지를 라우팅

실습

실습 코드및 결과: https://github.com/Engineer-kim/RabbitMQ


profile
사소한일에도 최선을 다하기

0개의 댓글

관련 채용 정보