RabbitMQ

02 February 2018

메시지 큐잉, AMQP, RabbitMQ에 대하여 간략하게 정리.

메시지 큐

  • 단방향 방식의 상호작용
  • 메시지의 흐름: 메시지 생산자 -> 브로커 -> 메시지 소비자
  • 비동기 방식
  • SMTP(이메일 전송 프로토콜)을 생각하면 이해가 쉬움
  • 메시지 전달을 브로커에게 전적으로 위임하여 발행자 시스템, 소비자 시스템간 결합을 느슨하게 함
느슨하게 결합된 시스템 구성
  • 발행자/소비자 간 문제 발생시 서로 영향을 주지 않음
  • 발행자/소비자의 인스턴스 수를 독립적으로 증가/감소시킬 수 있음
  • 발행자/소비자는 서로의 위치가 어디인지 어떤 기술을 사용하는지 알지 못함

AMQP

  • Advanced Message Queuing Protocol
  • 시스템간 메시지를 교환하기 위해 정의된 공개 표준 프로토콜. 발행자, 브로커, 소비자 사이에 발생하는 상호작용 방식 뿐 아니라 메시지와 명령어의 교환 형태 또한 정의하고 있음.
  • 특정 업체나 호스팅 플랫폼에 정의되지 않음.
AMQP 핵심 개념
  • Broker: 미들웨어 애플리케이션으로, 발행자가 만든 메시지를 받아서 이를 소비자나 다른 브로커에게 전달.
  • Virtual host: 브로커 내의 가상영역으로 multitenancy(멀티테넌시; 시스템에서 다수의 이용자에게 동일한 서비스를 제공하는 기술)같이 대개 보안상의 이유로 발행자, 소비자 및 모든 AMQP 구성요소를 분리할 수 있다.
  • Connection: 발행자, 브로커, 소비자 간의 물리적인 네트워크(TCP) 연결.
  • Channel: 발행자, 브로커, 소비자 간의 논리적인 연결로 하나의 연결 내에 다수의 채널을 설정할 수 있다.
  • Exchange: 발행한 모든 메시지가 처음 도달하는 지점. 메시지가 목적지에 도달할 수 있도록 라우팅 규칙 적용을 담당. 라우팅 규칙에는 direct(point-to-point), topic(publish-subscribe), fanout(multicast)이 존재.
  • Queue: 메시지가 소비되기 전 대기하고 있는 최종 지점. 익스체인지 라우팅 규칙에 의해 단일 메시지가 복사되거나 다수의 큐에 도달할 수 있다.
  • Binding: 익스체인지와 큐 간의 가상 연결로 메시지가 익스체인지에서 큐로 이동할 수 있도록 함. 익스체인지 라우팅 규칙에 따라 큐를 바인딩하는데 라우팅키를 사용할 수 있다.

RabbitMQ

  • 메시지 브로커. 메시지 큐잉 소프트웨어.
  • AMQP의 구현체이며 얼랭 기반이다.

  • RabbitMQ 따라잡기 - 데이비드 도소트 지음, 장준호 옮김, 에이콘출판사
  • https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
Git commit log 및 PR 작성시 참고할만한 주요 전치사 정리 Pale Blue Dot