상세 컨텐츠

본문 제목

[ 웹개발 ] RabbitMQ란?

실무/[ 기타 ]

by glenn93 2024. 5. 16. 14:58

본문

728x90
반응형

RabbitMq 란?

RabbitMQ는 '메시지 브로커' 소프트웨어 솔루션으로, 메시지를 송신자와 수신자 간에 전송하는 역할을 한다. 주로 비동기 메시지 전달, 시스템 간 통신, 작업 큐를 관리하기 위해 사용.

 

RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 구현한 오픈 소스 소프트웨어이다.

* AMQP(Advenced Message Queuing Protocol) 메시지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜

 

 

주요기능

  • 메시지 브로커: 메시지를 송신자(Publisher)와 수신자(Consumer) 사이에 전송하는 중개자 역할.
  • 확장성: 여러 노드로 구성된 클러스터를 지원하며, 메시징 작업을 분산하여 처리.
  • 내구성: 메시지를 안전하게 저장하여 시스템 장애 시에도 데이터 손실을 최소화.
  • 고가용성: 복제 및 페일오버(failover) 기능을 통해 고가용성을 보장.
    - 페일오버: 시스템 장애 시 준비되어있는 다른 시스템으로 대체하는 기능.
                       예비 백업 시스템(노드) 로 자동 전환되는 것.
  • 플러그인 시스템: 다양한 플러그인을 통해 기능을 확장할 수 있다.

 

기본개념

  • 프로듀서: 메시지를 생성하고 발송하는 주체 ( 프로듀서는 메시지를 큐에 직접 보내는 것이 아니라 Exchage에 Publish 함 )
  • 교환기: 프로듀서로부터 전달받은 메시지를 어떤 Queue에 발송할지 결정하는 객체. (4가지 타입[Direct, Topic, Headers, Fanout] 존재, 각각의 타입과 Binding 규칙에 따라 적절한 큐로 메시지를 전달)
  • 큐: RabbitMQ 안에서 메시지를 일시적으로 저장하는 장소이며, 소비자들은 큐에 저장된 메시지를 읽음.
  • 소비자: 큐에서 메시지를 받아 처리하는 애플리케이션 또는 시스템.
  • 바인딩: 교환기와 큐를 연결하는 관계. Exchante Type과 Binding 규칙에 따라 적절한 큐로 메시지가 전달됨.

 

 

작동방식

    • 메시지 발행: 프로듀서가 메시지를 생성하여 특정 교환기로 발행.( ① )
    • 메시지 라우팅: 교환기는 바인딩된 규칙에 따라 메시지를 하나 이상의 큐로 라우팅. ( ②, ③, ④ )
    • 메시지 소비: 소비자는 큐에 있는 메시지를 가져와 처리. ( ⑤ ) 

 

 

 

 

 

▶설치 참고

https://velog.io/@power0080/Message-QueueRabbitMQ%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4-%EB%A9%94%EC%84%B8%EC%A7%80-%EC%A3%BC%EA%B3%A0-%EB%B0%9B%EA%B8%B0

 

[Message Queue]RabbitMQ를 사용해 메세지 주고 받기

RabbitMQ를 통해 메세지를 송, 수신하는 2개의 서비스를 간단히 만들어봅시다.

velog.io

 

 

▶참고

https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html

 

Part 1: RabbitMQ for beginners - What is RabbitMQ? - CloudAMQP

RabbitMQ for beginners explains what RabbitMQ and message queuing is. It gives a brief understanding of messaging and important RabbitMQ concepts are explained.

www.cloudamqp.com

 

 

728x90
반응형

관련글 더보기