맨위로가기

메시지 브로커

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

메시지 브로커는 분산 시스템에서 메시지 라우팅, 변환, 집계, 외부 서비스 연동, 이벤트 처리 등을 담당하는 소프트웨어이다. 허브 앤 스포크 또는 메시지 버스 아키텍처를 기반으로 하며, 실시간 시스템 개발에도 활용된다. 주요 메시지 브로커 소프트웨어로는 Apache Kafka, RabbitMQ, Amazon SQS 등이 있으며, 클라우드 서비스 형태로도 제공된다.

2. 역사적 배경

2. 1. 개방형 시스템의 등장

2. 2. 분산 시스템의 발전

3. 메시지 브로커의 기능

3. 1. 메시지 라우팅

메시지 브로커는 다음 작업을 처리할 수 있다.[2][3]

  • 메시지를 하나 이상의 대상으로 라우팅
  • 메시지를 다른 표현으로 변환
  • 메시지 집계, 분해, 재구성 후 사용자에게 반환
  • 외부 저장소와 상호 작용하여 메시지 보강 또는 저장
  • 웹 서비스를 호출하여 데이터 검색
  • 이벤트 또는 오류에 응답
  • 게시-구독 패턴을 사용하여 콘텐츠 및 토픽 기반 메시지 라우팅 제공


메시지 브로커는 일반적으로 허브 앤 스포크와 메시지 버스, 두 가지 기본 아키텍처 중 하나를 기반으로 한다. 허브 앤 스포크 방식에서는 중앙 서버가 통합 서비스를 제공하며, 메시지 버스 방식에서는 메시지 브로커가 버스에서 작동하는 통신 백본 또는 분산 서비스이다.[3] 또한, 여러 브로커를 통합하기 위해 더 확장 가능한 다중 허브 접근 방식을 사용할 수 있다.[3]

3. 2. 메시지 변환

메시지 브로커는 메시지를 다른 표현으로 변환할 수 있다.[2][3] 메시지 집계를 수행하거나, 메시지를 여러 메시지로 분해하여 대상지로 전송한 다음 응답을 하나의 메시지로 재구성하여 사용자에게 반환할 수 있다. 외부 저장소와 상호 작용하여 메시지를 보강하거나 저장하는 기능, 웹 서비스를 호출하여 데이터를 검색하는 기능, 이벤트 또는 오류에 응답하는 기능도 제공한다.[2] 또한, 게시-구독 패턴을 사용하여 콘텐츠 및 토픽 기반 메시지 라우팅을 제공한다.[2][3]

메시지 브로커는 허브 앤 스포크와 메시지 버스, 두 가지 기본 아키텍처 중 하나를 기반으로 한다. 허브 앤 스포크 방식에서는 중앙 서버가 통합 서비스를 제공하며, 메시지 버스 방식에서는 메시지 브로커가 버스에서 작동하는 통신 백본 또는 분산 서비스 역할을 한다.[3] 더 확장 가능한 다중 허브 접근 방식을 사용하여 여러 브로커를 통합할 수도 있다.[3]

3. 3. 메시지 집계 및 분해

메시지 브로커는 다음과 같은 작업을 처리할 수 있다.[2][3]

  • 메시지를 하나 이상의 대상으로 라우팅
  • 메시지를 다른 표현으로 변환
  • 메시지 집계 수행, 메시지를 여러 메시지로 분해하여 대상지로 전송한 다음 응답을 하나의 메시지로 재구성하여 사용자에게 반환
  • 외부 저장소와 상호 작용하여 메시지를 보강하거나 저장
  • 웹 서비스를 호출하여 데이터 검색
  • 이벤트 또는 오류에 응답
  • 게시-구독 패턴을 사용하여 콘텐츠 및 토픽 기반 메시지 라우팅 제공


메시지 브로커는 일반적으로 허브 앤 스포크와 메시지 버스, 두 가지 기본 아키텍처 중 하나를 기반으로 한다. 허브 앤 스포크 방식의 경우 중앙 서버가 통합 서비스를 제공하는 메커니즘 역할을 하며, 메시지 버스 방식의 경우 메시지 브로커는 버스에서 작동하는 통신 백본 또는 분산 서비스이다.[3] 또한, 여러 브로커를 통합하기 위해 더 확장 가능한 다중 허브 접근 방식을 사용할 수 있다.[3]

3. 4. 외부 서비스 연동

메시지 브로커는 다음과 같은 외부 서비스 연동 작업을 처리할 수 있다.[2][3]

  • 메시지를 하나 이상의 대상으로 라우팅한다.
  • 메시지를 다른 표현으로 변환한다.
  • 메시지 집계를 수행하고, 메시지를 여러 메시지로 분해하여 대상지로 전송한 다음 응답을 하나의 메시지로 재구성하여 사용자에게 반환한다.
  • 외부 저장소와 상호 작용하여 메시지를 보강하거나 저장한다.
  • 웹 서비스를 호출하여 데이터를 검색한다.
  • 이벤트 또는 오류에 응답한다.
  • 게시-구독 패턴을 사용하여 콘텐츠 및 토픽 기반 메시지 라우팅을 제공한다.


메시지 브로커는 허브 앤 스포크와 메시지 버스, 두 가지 기본 아키텍처를 기반으로 한다. 허브 앤 스포크 방식에서는 중앙 서버가 통합 서비스를 제공하고, 메시지 버스 방식에서는 메시지 브로커가 버스에서 작동하는 통신 백본 또는 분산 서비스 역할을 한다.[3] 또한, 여러 브로커를 통합하는 다중 허브 접근 방식을 사용할 수 있다.[3]

3. 5. 이벤트 처리

메시지 브로커는 메시지 라우팅, 변환, 집계, 분해, 재구성 등의 작업을 처리한다.[2][3] 외부 저장소와 상호작용하여 메시지를 보강하거나 저장하고, 웹 서비스를 호출하여 데이터를 검색하며, 이벤트 또는 오류에 응답한다.[2][3] 게시-구독 패턴을 사용하여 콘텐츠 및 토픽 기반 메시지 라우팅을 제공한다.[2][3]

메시지 브로커는 허브 앤 스포크와 메시지 버스, 두 가지 기본 아키텍처를 기반으로 한다. 허브 앤 스포크 방식에서는 중앙 서버가 통합 서비스를 제공하고, 메시지 버스 방식에서는 메시지 브로커가 버스에서 작동하는 통신 백본 또는 분산 서비스 역할을 한다.[3] 더 확장 가능한 다중 허브 접근 방식을 사용하여 여러 브로커를 통합할 수도 있다.[3]

4. 아키텍처

4. 1. 허브 앤 스포크

4. 2. 메시지 버스

5. 실시간 시스템에서의 활용

실행 예측 가능성이 필요한 실시간 시스템 개발에는 시간 제약 통신을 엔드 투 엔드 예측 가능성으로 달성하도록 특별히 제작된 메시지 브로커를 사용할 수 있다. 실시간 요구 사항이 있는 시스템은 로봇 공학, 차량 자동화, 소프트웨어 정의 라디오 등 실제 세계와의 상호 작용을 포함하는 경우가 많다.

객체 관리 그룹(Object Management Group, OMG)의 [https://www.omg.org/spec/RT/1.2/PDF 실시간 CORBA] 사양은 예측 가능한 통신 기술에 대한 이론적 기반을 제공한다.

이 사양에 따르면, 고정 우선 순위 CORBA 시스템에서 적시성의 "엔드 투 엔드 예측 가능성"은 다음을 의미한다.


  • CORBA 호출 처리 중 리소스 경합 해결을 위해 클라이언트와 서버 간 스레드 우선 순위 존중.
  • 엔드 투 엔드 처리 중 스레드 우선 순위 역전 기간 제한.
  • 작업 호출의 지연 시간 제한.

6. 주요 메시지 브로커 소프트웨어 목록

6. 1. 아파치 소프트웨어 재단

아파치 소프트웨어 재단은 다양한 메시지 브로커 솔루션을 제공한다. 주요 메시지 브로커는 다음과 같다.

6. 2. 기타 오픈 소스 소프트웨어

아마존 웹 서비스(AWS) 심플 큐 서비스(SQS), 아마존 MQ, Kinesis를 제공한다.

6. 3. 상용 소프트웨어


  • 아마존(AWS) 심플 큐 서비스(SQS)와 [https://aws.amazon.com/amazon-mq/ Amazon MQ], [https://aws.amazon.com/kinesis/ Kinesis]를 제공한다.
  • 아파치 ActiveMQ
  • 아파치 카프카
  • 아파치 Qpid
  • Celery
  • Cloverleaf (E-Novation Lifeline)
  • Comverse Message Broker (Comverse Technology)
  • 이클립스 모스키토 MQTT 브로커 (이클립스 재단)
  • Enduro/X 트랜잭셔널 메시지 큐 (Transactional Message Queue, TMQ)
  • 파이낸셜 퓨전 메시지 브로커 (사이베이스)
  • 퓨즈 메시지 브로커 (엔터프라이즈 ActiveMQ)
  • Gearman
  • HornetQ (레드햇)
  • IBM 앱 커넥트
  • IBM 웹스피어 MQ
  • JBoss 메시징 (와일드플라이)
  • JORAM
  • 마이크로소프트 애저 서비스 버스 (마이크로소프트)
  • 마이크로소프트 비즈토크 서버 (마이크로소프트)
  • NATS (MIT 오픈 소스 라이선스: Go로 개발됨)
  • 오픈 메시지 큐
  • 오라클 메시지 브로커 (오라클)
  • RabbitMQ (모질라 공용 허가서, 얼랭으로 개발됨)
  • 레디스: 오픈 소스 인메모리 데이터 구조 스토어 (데이터베이스, 캐시, 메시지 브로커로 사용됨)
  • SAP PI (SAP SE)
  • Solace PubSub+
  • 스프레드 툴킷
  • Tarantool: NoSQL 데이터베이스
  • TIBCO 엔터프라이즈 메시지 서비스
  • WSO2 메시지 브로커
  • [https://migratorydata.com MigratoryData] (C10M 문제를 해결하기 위해 작성된 퍼블리시/구독 웹소켓 메시지 브로커[5])
  • 아파치
  • * [https://activemq.apache.org/components/artemis/ 아파치 아르테미스]
  • * 아파치 카멜
  • * 아파치 스리프트
  • * 아파치 펄사
  • 코어플럭스 [https://www.coreflux.org/ Coreflux MQTT Broker]
  • EMQX [https://www.emqx.com/en/products/emqx EMQX MQTT Broker]
  • 구글 클라우드 [https://cloud.google.com/pubsub Pub/Sub] (구글)
  • HiveMQ [https://www.hivemq.com/hivemq/ HiveMQ MQTT Broker]
  • 나노MQ [https://nanomq.io/ MQTT Broker for IoT Edge]
  • ORBexpress (OIS)
  • * ORBexpress Ada로 작성
  • * ORBexpress C#로 작성
  • * ORBexpress C++로 작성
  • * ORBexpress 자바로 작성
  • 레드판다 (아파치 카프카 API 구현, C++로 작성)
  • SMC [http://www.smcsystem.ru/ SMC Platform]
  • 제로MQ

6. 4. 클라우드 서비스

다음은 클라우드 기반 메시지 브로커 서비스를 제공하는 주요 업체 목록이다.

  • 아마존 웹 서비스(AWS)는 심플 큐 서비스(SQS), [https://aws.amazon.com/amazon-mq/ Amazon MQ], [https://aws.amazon.com/kinesis/ Kinesis]를 제공한다.[5]
  • 마이크로소프트 애저 서비스 버스 (마이크로소프트)[5]
  • 구글 클라우드는 [https://cloud.google.com/pubsub Pub/Sub] (구글)를 제공한다.[5]
  • 아파치 ActiveMQ
  • 아파치 카프카
  • 아파치 Qpid
  • Celery
  • Cloverleaf (E-Novation Lifeline)
  • Comverse Message Broker (Comverse Technology)
  • 이클립스 모스키토 MQTT 브로커 (이클립스 재단)
  • Enduro/X 트랜잭셔널 메시지 큐 (Transactional Message Queue, TMQ)
  • 파이낸셜 퓨전 메시지 브로커 (사이베이스)
  • 퓨즈 메시지 브로커 (엔터프라이즈 ActiveMQ)
  • Gearman
  • HornetQ (레드햇)
  • IBM 앱 커넥트
  • IBM 웹스피어 MQ
  • JBoss 메시징 (와일드플라이)
  • JORAM
  • 마이크로소프트 비즈토크 서버 (마이크로소프트)
  • NATS (MIT 오픈 소스 라이선스: Go로 개발됨)
  • 오픈 메시지 큐
  • 오라클 메시지 브로커 (오라클)
  • RabbitMQ (모질라 공용 허가서, 얼랭으로 개발됨)
  • 레디스: 오픈 소스 인메모리 데이터 구조 스토어 (데이터베이스, 캐시, 메시지 브로커로 사용됨)
  • SAP PI (SAP SE)
  • Solace PubSub+
  • 스프레드 툴킷
  • Tarantool: NoSQL 데이터베이스
  • TIBCO 엔터프라이즈 메시지 서비스
  • WSO2 메시지 브로커
  • [https://migratorydata.com MigratoryData] (C10M 문제를 해결하기 위해 작성된 퍼블리시/구독 웹소켓 메시지 브로커[5])
  • 코어플럭스 [https://www.coreflux.org/ Coreflux MQTT Broker]
  • EMQX [https://www.emqx.com/en/products/emqx EMQX MQTT Broker]
  • HiveMQ [https://www.hivemq.com/hivemq/ HiveMQ MQTT Broker]
  • 나노MQ [https://nanomq.io/ MQTT Broker for IoT Edge]
  • ORBexpress (OIS)
  • * ORBexpress Ada로 작성
  • * ORBexpress C#로 작성
  • * ORBexpress C++로 작성
  • * ORBexpress 자바로 작성
  • 레드판다 (아파치 카프카 API 구현, C++로 작성)
  • SMC [http://www.smcsystem.ru/ SMC Platform]
  • 제로MQ
  • '''아파치'''
  • * 아파치 액티브MQ
  • * [https://activemq.apache.org/components/artemis/ 아파치 아르테미스]
  • * 아파치 카멜
  • * 아파치 큐피드
  • * 아파치 스리프트
  • * 아파치 펄사
  • 클로버리프 (Enovation Lifeline - NL)

7. 국내 활용 사례

참조

[1] 웹사이트 IB (integration broker) https://www.gartner.[...] Gartner, Inc 2018-05-17
[2] 서적 Guide to Cloud Computing for Business and Technology Managers: From Distributed Computing to Cloudware Applications CRC Press 2018-05-17
[3] 서적 Web Services Business Strategies and Architectures Apress 2018-05-17
[4] 서적 Web Scalability for Startup Engineers McGraw Hill Professional
[5] 서적 Proceedings of the 18th ACM/IFIP/USENIX Middleware Conference: Industrial Track 2017-12
[6] 웹인용 IB (integration broker) https://www.gartner.[...] Gartner, Inc 2018-05-17
[7] 서적 Guide to Cloud Computing for Business and Technology Managers: From Distributed Computing to Cloudware Applications https://books.google[...] CRC Press 2018-05-17
[8] 서적 Web Services Business Strategies and Architectures https://books.google[...] Apress 2018-05-17



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com