RabbitMQ

5BRack·2023년 4월 6일
0

CS

목록 보기
5/5

메시지 브로커란?

  • 송신자의 메시지 프로토콜 형식으로 부터의 메시지를 수신자의 메시지 프로토콜 형식으로 변환하는 중간 컴퓨터 프로그램 모듈이다.

메시지 브로커 사용의 이유

  1. 서비스 간의 의존성 제거

  2. 메시지 처리 시점

  3. EndPoint 관리 용의성

  4. 다양하고 유연한 통신

  5. 서비스간 의존성 제거

  • 서비스간 통신이 불가능할 때, 요청 쪽에서는 timeout이 발생하여 송신측 서비스에 문제가 발생할 수 있다. 이때, 메시지 브로커를 이용하여 의존성을 제거할 수 있다.
  1. 메시지 전달 보장
  • 메시지 전달을 보장하는 기능이 제공되어 수신자 측에서 메시지를 확실하게 전달 받을 수 있다.
  1. EndPoint 관리가 수월
  2. 다양하고 유연한 통신
  • 클라이언트 수가 급격하게 늘어날 시, 메시지 브로커 서버를 수평적으로 증설하게 되면 이를 쉽게 해결할 수 있다.

RabbitMQ란?

  • 가장 널리 배포된 오픈 소스 메시지 브로커
  • 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 통신 방법
  • 더 큰 의미로는 메시지 지향 미들웨어를 구현한 시스템
  • 시스템 to 시스템을 이어주는 메커니즘을 가진 미들웨어 시스템
  • AMQP를 구현한 오픈 소스 메시지 브로커 소프트웨어로 Publisher로부터 메시지를 받아 Consumer에게 라우트하는 것이 주된 역할, 이를 이용하면 작업 큐, 발행 및 구독, 라우팅, 주제, 원격 프로시저 호출등의 모델을 구현할 수 있다.

메시지 흐름

producer → exchange → queue → consumer

역할

subscribe

  • 메시지 발행자

exchange

  • 메시지를 binding 된 적절한 queue에 라우팅

queue

  • 메시지를 담아 놓는 buffer

subscribe

  • 메시지를 감시하여 수신

장점

  • 비동기 : queue라는 임시 저장소
  • 낮은 결합도 : 어플리케이션 분리
  • 확장성 : 원하는 대로 서비스 확장
  • 탄력성 : consumer 서비스가 다운되더라도 어플리케이션이 중단되는 것은 아니며 메시지는 지속하여 MQ에 남아있다.
  • 보장성: MQ에 들어간다면 결국 모든 메시지가 comsumer 서비스에게 전달한다는 보장

0개의 댓글

관련 채용 정보