Note

[TIL] 메시지 브로커

by 달쿨

TIL

개념

메시지 브로커(Message Broker)란 애플리케이션, 서비스, 또는 시스템 간에 데이터를 교환하기 위한 중간 매개체 역할을 하는 소프트웨어로 애플리케이션들이 서로 직접 통신하지 않고, 메시지 브로커를 통해 데이터를 주고받음으로써 애플리케이션 간 결합도를 줄이고, 데이터 전달을 더 안정적이고 유연하게 만들 수 있다. 이러한 이유로 분산 시스템과 마이크로서비스 환경에서 데이터와 명령을 안전하게 전달하기 위해 메시지 브로커는 매우 중요한 역할을 한다.

기본적인 동작 방식은 한 애플리케이션이 메시지를 발행(Publish)하면, 브로커는 이를 저장하고 적절한 방식으로 다른 애플리케이션에게 전달(Deliver)한다. 이 때 브로커는 메시지의 전송, 대기열 관리, 순서 보장, 재전송 등의 작업을 처리한다.

 

주요 기능

  • 비동기 통신 지원

생산자와 소비자가 동시에 작동하지 않아도 된다. 생산자가 메시지를 브로커에 저장하면, 소비자는 필요할 때 이를 가져갈 수 있다.

메시지를 일시적으로 저장하는 큐(queue)를 통해 메시지 전달 순서를 보장하거나, 트래픽이 몰리는 상황에서도 데이터를 손실 없이 보존할 수 있다.

  • 확장성

여러 서비스 간의 통신을 간소화해 애플리케이션이 쉽게 확장되도록 돕는다.

  • 로드밸런싱

다수의 소비자들에게 메시지를 분배함으로써 작업 부하를 고르게 나눌 수 있다.

  • 재시도 및 오류 처리

메시지 전송 실패 시 재전송 기능을 제공하여 안정적인 데이터 전달을 보장한다.

 

 

활용 분야

다양한 애플리케이션에서 사용된다.

  • 마이크로서비스 간 통신

마이크로서비스 아키텍처에서는 서비스 간 느슨한 결합을 유지하는 것이 중요하기 때문에 메시지 브로커가 많이 활용된다. 예를 들어, 주문 서비스와 배송 서비스가 메시지 브로커를 통해 데이터를 주고받을 수 있도록 한다.

  • 이벤트 기반 아키텍처

특정 이벤트가 발생했을 때 다른 시스템으로 알림을 전달할 때 사용된다. 예를 들어, 사용자가 결제를 완료하면 메시지 브로커가 결제 이벤트를 소비자(알림 서비스, 배송 서비스 등)로 전달하도록 한다.

  • 실시간 데이터 처리

채팅 애플리케이션, 실시간 알림 시스템, 주식 거래 시스템 등에서 메시지 브로커를 사용해 실시간으로 데이터를 전송할 수 있다.

 

 

대표적인 메시지 브로커

  • RabbitMQ

오픈 소스 메시지 브로커로 고급 큐 관리와 다양한 메시징 패턴을 지원한다.

  • Apache Kafka

대규모 실시간 처리를 위한 메시지 브로커

  • Redis Pub/Sub

Redis의 간단한 메시지 브로커 기능으로 빠른 속도를 자랑한다.

  • Amazon SQS(Simple Queue Service)

클라우드 기반 메시지 큐 서비스로 설정이 간단하고 확장성이 좋다.

'TIL' 카테고리의 다른 글

[TIL] Completed shut down of DiscoveryClient 문제  (0) 2024.12.09
[TIL] 트래픽  (0) 2024.12.05
[TIL] Redis의 주요 캐싱 전략  (0) 2024.12.02
[TIL] Docker Compose 개념  (0) 2024.11.29
[TIL] Docker 개념  (0) 2024.11.28

블로그의 정보

note

달쿨

활동하기