Home > Architecture > 🏗️[Architecture] Message Broker(메시지 브로커)란 무엇일까?

🏗️[Architecture] Message Broker(메시지 브로커)란 무엇일까?
Architecture Software Architecture Distributed System

🏗️[Architecture] Message Broker(메시지 브로커)란 무엇일까?

📌 Intro.

  • ↘︎ 메시지 브로커(Message Broker)는 서로 다른 시스템, 또는 애플리케이션 간의 메시지(Message)를 안전하게 송수신하도록 중간에서 중개하는 소프트웨어입니다.
    • ↘︎ 주로 비동기 통신시스템 간의 느슨한 결합(loose coupling)을 보장하는 데 사용됩니다.

1️⃣ 메시지 브로커(Message Broker)의 역할.

  • 📌 1. 메시지 전달.
    • ↘︎ 생산자(Producer)와 소비자(Consumer) 간의 메시지(Message)를 중간에서 전달합니다.
  • 📌 2. 비동기 통신.
    • ↘︎ 시스템 간에 실시간으로 응답을 기다리지 않고 독립적으로 작동할 수 있습니다.
  • 📌 3. 메시지 큐(Message Queue)
    • ↘︎ 메시지를 임시로 저장하여 소비자가 메시지를 처리할 수 있도록 보장합니다.
  • 📌 4. 메시지 라우팅(Message Routing)
    • ↘︎ 특정 조건이나 규칙에 따라 메시지를 적절한 소비자에게 전달합니다.
  • 📌 5. 신뢰성
    • ↘︎ 메시지가 손실되지 않도록 저장 및 재전송 기능을 제공합니다.
  • 📌 6. 확장성(Scalability)
    • ↘︎ 메시지 브로커를 사용하면 시스템이 더 많은 메시지를 처리할 수 있도록 쉽게 확장할 수 있습니다.

2️⃣ 메시지 브로커(Message Broker)의 동작 방식.

  • 1. 생산자(Producer):
    • ↘︎ 메시지를 생성하고 브로커에 전달합니다.
  • 2. 브로커(Broker):
    • ↘︎ 메시지를 임시 저장하고, 특정 규칙에 따라 올바른 소비자에게 전달합니다.
  • 3. 소비자(Consumer):
    • ↘︎ 메시지를 수신하고 해당 메세지를 처리합니다.
  • 4. 메시지 큐(Message Queue):
    • ↘︎ 메시지를 저장하는 대기열입니다.
  • 5. 메시지 주제(Topic):
    • ↘︎ 여러 소비자가 동일한 메시지를 구독(Subscribe)할 수 있습니다.

3️⃣ 메시지 브로커(Message Broker)의 아키텍처.

  • 1. 포인트-투-포인트(Point-to-Point,P2P)
    • ↘︎ 큐(Queue) 기반의 메시징 모델
    • ↘︎ 한 생산자가 한 소비자에게만 메시지를 전달합니다.
    • ↘︎ 예시: AWS SQS, RabbitMQ
  • 2. 퍼블리시-서브스크라이브(Publish-Subscribe, Pub/Sub)
    • ↘︎ 토픽(Topic) 기반의 메시징 모델
    • ↘︎ 한 생산자가 여러 소비자에게 메시지를 전달할 수 있습니다.
    • ↘︎ 예시: Apache Kafka, AWS SNS

4️⃣ 메시지 브로커의 장점.

  • 1. 비동기 처리:
    • ↘︎ 생산자와 소비자가 독립적으로 작동합니다.
  • 2. 확장성:
    • ↘︎ 시스템이 더 많은 트래픽을 처리할 수 있습니다.
  • 3. 유연성:
    • ↘︎ 서비스 간의 결합도가 낮아져 변경에 유연하게 대응할 수 있습니다.
  • 4. 신뢰성:
    • ↘︎ 메시지가 손실되지 않고 안전하게 전달됩니다.
  • 5. 부하 분산:
    • ↘︎ 메시지를 여러 소비자에게 분산하여 처리할 수 있습니다.

5️⃣ 메시지 브로커의 유형.

  • 1. RabbitMQ
    • ↘︎ 유형 : 메시지 큐(Message Queue)
    • ↘︎ 프로토콜 : AMQP (Advanced Message Queuing Protocol)
    • ↘︎ 특징 : 경량, 높은 안정성
  • 2. Apache Kafka
    • ↘︎ 유형 : 이벤트 스트리밍 플랫폼
    • ↘︎ 프로토콜 : TCP
    • ↘︎ 특징 : 높은 처리량, 실시간 데이터 스트리밍
  • 3. AWS SQS (Simple Queue Service)
    • ↘︎ 유형 : Managed 메시지 큐
    • ↘︎ 특징 : 서버리스, 높은 확장성
  • 4. AWS SNS (Simple Notification Service)
    • ↘︎ 유형 : 퍼블리시/서브스크라이브 모델
    • ↘︎ 특징 : 알림 및 브로드캐스팅
  • 5. ActiveMQ
    • ↘︎ 유형 : 메시지 브로커
    • ↘︎ 프로토콜 : AMQP, MQTT 등 지원
    • ↘︎ 특징 : 유연하고 확장 가능

6️⃣ 메시지 브로커의 사용 사례.

  • 1. 주문 처리 시스템(Order Processing System)
    • ↘︎ 주문이 생성되면 결제 서비스, 재고 서비스, 배송 서비스에 메시지를 전달
  • 2. 알림 시스템(Notification System)
    • ↘︎ 사용자에게 이메일, SMS, 알림 등을 보낼 때
  • 3. 로그 및 모니터링(Log & Monitoring)
    • ↘︎ 서버 로그나 사용자 활동 데이터를 실시간으로 처리
  • 4. IoT 시스템
    • ↘︎ 수많은 IoT 장치로부터 데이터를 수집 및 처리

7️⃣ 메시지 브로커 선택 기준.

  • 1. 성능 : 높은 처리량과 낮은 대기 시간
  • 2. 확장성 : 대량의 메시지를 처리할 수 있는가
  • 3. 신뢰성 : 메시지 손실 방지 기능
  • 4. 보안 : 메시지 암호화 및 인증 지원
  • 5. 운영 및 관리 : 설정 및 유지보수의 편의성

8️⃣ 메시지 브로커 비교.

브로커 유형 특징 사용사례
RabbitMQ 안정적, AMQP 지원 금융 거래, 주문 처리
Kafka 스트림 높은 처리량, 분산형 실시간 데이터 분석
AWS SQS 서버리스, 확장성 분산 시스템 큐
AWS SNS 토픽 알림 서비스 이벤트 알림

🚀 결론.

  • 메시지 브로커(Message Broker)는 시스템 간 데이터 교환을 안전하고 효율적으로 수행하는 중간 역할을 합니다.
  • 큐(Queue) 기반과 토픽(Topic) 기반으로 구분됩니다.
  • 선택할 때는 성능, 확장성, 신뢰성을 고려해야 합니다.
  • 비동기 처리, 분산 시스템, 이벤트 중심 아키텍처 등 다양한 환경에서 널리 사용됩니다.

🔑 핵심 요약.

  • 메시지 브로커란 ? : 시스템 간 메시지 전달 중개자
  • 유형 : 큐(P2P), 토픽(Pub/Sub)
  • 주요 브로커 : RabbitBQ, Kafka, AWS SQS, AWS SNS