📌  AMQP는 메시지 큐 시스템에서 사용되는 표준 프로토콜입니다.
📌  RabbitMQ는 AMQP 프로토콜을 구현한 오픈 소스 메시지 브로커입니다.
📌  RabbitMQ를 사용하면 AMQP 프로토콜을 따르는 메시지 시스템을 쉽게 구축할 수 있습니다.
📌  결론적으로, AMQP는 규칙이고, RabbitMQ는 그 규칙을 따라 구현한 소프트웨어입니다.

※ RabbitMQ란?

  RabbitMQ란 오픈 소스 메시지 브로커(Message Broker) 소프트웨어로, AMQP(Advanced Message Queuing Protocol)를 구현한 메시지 큐 시스템입니다. 메시지를 생성하는 Producer(생산자)와 메시지를 소비하는 Consumer(소비자) 간의 비동기 메시지 전송을 지원합니다.

 AMQP란?

  AMQP란 Advanced Message Queuing Protocol의 약자로, 메시지 큐 시스템에서 사용되는 표준 프로토콜입니다.  서로 다른 시스템 간에 메시지를 주고받을 때 어떤 규칙을 따라야 하는지 정의한 일종의 약속과 같은 것이죠. 이 프로토콜을 따르면 다양한 시스템들이 서로 간섭 없이 효율적으로 통신할 수 있습니다. 

 

※ RabbitMQ의 주요 개념

🟢 메시지(Message)
    메시지는 데이터 조각을 의미하며, 일반적으로 JSON, XML, 바이너리, 텍스트 등의 형태로 전송됩니다.
🟢 프로듀서(Producer)
    메시지를 생성하여 Exchange(교환기)로 전달하는 역할을 합니다.
🟢 익스체인지(Exchange)
    메시지를 Queue(큐)로 라우팅하는 역할을 합니다. Exchange 유형에 따라 메시지를 다르게 전달합니다.
🟢 큐(Queue)
    메시지를 저장하는 버퍼 역할을 합니다. 큐에 저장된 메시지는 컨슈머(Consumer)가 가져가 처리할 수 있습니다.
🟢 소비자(Consumer)
    큐에서 메시지를 꺼내서 처리하는 역할을 합니다.

※ RabbitMQ의 작동 방식

(이미지 출처 - https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html)

  🟠 Producer(생산자)가 메시지를 생성하여 Exchange(교환기)에 전송
  🟠 Exchange(교환기)가 메시지를 적절한 Queue(큐)로 라우팅
  🟠 Queue(큐)는 메시지를 저장하고, Consumer(소비자)가 메시지를 가져감
  🟠 Consumer(소비자)는 메시지를 처리하고, 처리 완료되면 RabbitMQ에 확인(Ack, Acknowledgment) 신호를 보냄

 RabbitMQ의 특징

  🟠 메시지 내구성 (Durability) 지원

  • 메시지가 손실되지 않도록 설정 가능
  • 큐와 메시지를 영구적으로 저장할 수 있음 (durable=true, persistent=true)

  🟠 확장성 (Scalability) 높음

  • 다중 프로듀서-컨슈머 모델을 지원
  • 여러 개의 RabbitMQ 노드를 클러스터링하여 확장 가능

  🟠 다양한 프로토콜 지원

  • 기본적으로 AMQP를 지원하지만,
    MQTT, STOMP, HTTP 등 다양한 프로토콜과도 통신 가능

  🟠  플러그인 시스템 지원

  • 모니터링, 로깅, 인증 등 다양한 플러그인을 추가하여 기능 확장 가능

 


🖥️  도커로 RabbitMQ 설치 및 실행하기 

 

[도커(docker)] 도커로 RabbitMQ 설치 및 실행하기

[도커(docker)] 도커로 RabbitMQ 설치 및 실행하기docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management♣ 명령어 설명docker run새로운 컨테이너를 실행하는 명령어입니다.-d (De

happyldh.tistory.com

 

 

 

 

 

 

+ Recent posts