프로그래밍/RabbitMQ

[RabbitMQ] RabbitMQ 개념

Victory_HA 2023. 3. 29. 15:38

RabbitMQ

  • RabbitMQ는 오픈소스 메시지 브로커 이다.
  • 메시지 브로커는 애플리케이션, 시스템 및 서비스 등.. 서로 간에 통신하고 정보를 교환할 수 있도록 해주는 소프트웨어

RabbitMQ 주체 3가지

  • Producer : Msg를 송신 함
  • Consumer : Msg를 수신 함
  • Broker : Producer와 Consumer 중간에서 Msg를 전달 함

기본 개념

  • AMQP(Advanced Message Queuing Protocol) : 시스템 간 메시지를 교환하기 위해 공개 표준으로 정의한 프로토콜
  • Broker : 발행자가 만든 메시지를 저장
  • Virtual host : Broker 내의 가상 영역
  • Connection : 발생자와 소비자, Broker 사이의 물리적인 연결
  • Channel : 발행자와 소비자, Broker 사이의 논리적인 연결, 하나의 Connection 내에 다수의 Channel 설정 가능
  • Exchange : 발행한 모든 메시지가 처음 도달하는 지점으로 메시지가 목적지에 도달할 수 있도록 라우팅 규칙 적용, 라우팅 규칙에는 direct, topic, fanout
  • Queue : 메시지가 소비되기 전 대기하고 있는 최종 지점으로 Exchange 라우팅 규칙에 의해 단일 메시지가 복사되거나 다수의 큐에 도달할 수 있다
  • Binding : Exchange 와 Queue 간의 가상 연결

  • RabbitMQ는 익스체인지에서 라우팅 규칙에 의해서 큐로 메시지가 전달 됨