인프라/용어

메세지 브로커 (Message Broker) 란?

Jake Seo 2023. 4. 8. 12:39

메세지 브로커 (message broker) 란?

  • 안정적인 비동기 방식으로 메세지를 교환하여 분산된 시스템 혹은 애플리케이션 간의 통신을 돕는다.
  • 생산자와 소비자간 중개자 역할을 하여 두 시스템이 완전히 독립적으로 작동할 수 있도록 돕는다.
  • 컴포넌트간 느슨한 결합 (loose coupling) 을 돕는다.
    • 이 구조는 확장성을 증대시켜주고 장애가 미치는 여파를 줄일 수 있습니다.
  • 메세지 큐, 토픽과 같은 데이터구조를 통해 메세지를 임시로 저장해두었다가 적절한 수신자에게 보내줍니다.

핵심 기능

  • 비동기 커뮤니케이션
  • 디커플링
  • 메세지 라우팅 및 필터링
  • 영속성과 신뢰성
  • 스케일링
  • 로드밸런싱과 장애 내성

비동기 커뮤니케이션 (Asynchronous communication)

  • 시스템이 비동기로 소통할 수 있도록 돕는다.
  • 송신자와 수신자가 서로의 응답 메세지를 기다릴 필요 없이 서로 독립적으로 운영될 수 있도록 돕는다.

디커플링 (Decoupling)

  • 컴포넌트를 분리시켜 독립적으로 컴포넌트들이 진화할 수 있도록 돕는다.
  • 독립된 시스템은 유지보수의 복잡성이 낮아지게 만들 수 있다.

메세지 라우팅 및 필터링 (Message routing and filtering)

  • 라우팅 룰, 패턴, 메세지 프로퍼티 등을 제공하여 적절하게 메세지를 라우팅할 수 있다.
  • 라우팅을 통해 필터링된 특정 소비자에게 메세지를 가도록 설정할 수 있다.

영속성과 신뢰성 (Persistence and Reliability)

  • 시스템 장애 시에도 메세지 브로커는 자신이 받았던 메세지를 보관한다.
  • 다양한 QoS(Quality of Service) 를 제공하여, 적어도 한번, 정확히 한번 등의 옵션을 제공한다.

스케일링 (Scalability)

  • 수평적 스케일링이 가능하여 많은 양의 메세지 부하를 처리할 수 있다.

로드밸런싱과 장애 내성 (Load balancing and fault ttolerance)

  • 소비자들에게 균일하게 메세지를 나눠주어 부하의 균형을 유지할 수 있다.
  • 소비자가 메세지를 받는 것에 실패한 경우에 인지가 가능하고, 다른 대체 소비자에게 메세지를 보내는 것도 가능하다.

잘 사용되는 메세지 브로커 제품들

  • RabbitMQ
  • Apache Kafka
  • Amazone Simple Queue Service (SQS)
  • Google Cloud Pub/Sub
반응형