Message Oriented Middleware (MOM)는 비동기 메시지를 사용하는 다른 애플리케이션 간의 데이터 송수신을 말합니다. 또한 이 아키텍쳐를 사용하는 Message Queue(MQ)는 프로그래밍에서 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 방법입니다.
MOM은 MQ을 포괄하고 있고 MQ에는 Kafka, RabbitMQ, RocketMQ, ActiveMQ 등이 있습니다.
MQ의 장점과 단점은 다음과 같습니다.
Message Queue for Apache RocketMQ는 Apache RocketMQ를 기반으로 Alibaba Cloud에서 구축한 분산형 MOM 서비스로 짧은 대기 시간, 높은 동시성, 고가용성 및 높은 안정성을 제공합니다. Message Queue for Apache RocketMQ는 분산 애플리케이션에 대한 비동기식 분리 및 로드 이동을 제공하고 다량의 메시지 저장, 높은 처리량 및 안정적인 재시도를 포함하여 인터넷 기반 애플리케이션을 위한 기능을 지원합니다.
Message Queue for Apache Kafka는 Alibaba Cloud에서 제공하는 분산 Message Queue 서비스입니다. 이 서비스는 높은 처리량과 확장성을 제공합니다. Message Queue for Apache Kafka는 로그 수집, 데이터 집계 모니터링, 스트리밍 데이터 처리, 온라인 및 오프라인 분석과 같은 빅 데이터 분야에서 주로 사용됩니다.
Message Queue for Apache Kafka서비스는 다음과 같은 케이스에서 사용될 수 있습니다.
Message Queue for RabbitMQ는 AMQP(Advanced Message Queuing Protocol) 0-9-1을 기반으로Alibaba Cloud 팀에서 개발한 Message Queue서비스입니다. 이 서비스는 높은 처리량, 짧은 대기 시간 및 높은 확장성을 제공합니다.
Message Queue for RabbitMQ는 모든 오픈 소스 RabbitMQ 클라이언트와 완벽하게 호환됩니다.따라서 서비스를 배포하고 관리를 할 때 별도의 커스터마이징을 수행할 필요가 없습니다.
Message Queue for RabbitMQ에서 사용하는 용어들은 아래와 같습니다.
Message Queue for RabbitMQ에서는 다음 단계로 메시지가 라우트됩니다.
Message Queue for MQTT는 모바일 인터넷 및 IoT 시나리오를 위해 Alibaba Cloud에서 제공하는 경량 메시징 미들웨어입니다. 전통적인 메시징 미들웨어는 일반적으로 마이크로 서비스 간에 사용됩니다. 그러나 IoT 시나리오용으로 설계된 Message Queue for MQTT는 디바이스와 클라우드 간에 메시지를 전송하는 IoT를 구현하기 위한 전용 미들웨어입니다.
USE CASE : IoT 디바이스와 백엔드 서비스 애플리케이션 간의 상호작용 모델
이 모델에서 Message Queue for MQTT는 디바이스를 백엔드 서비스 애플리케이션에 연결하여 디바이스와 백엔드 애플리케이션 간의 양방향 통신을 구현합니다. 디바이스는 Message Queue for MQTT를 사용하여 백엔드 서비스 애플리케이션과 직접 통신할 수 있습니다.
이 모델의 일반적인 시나리오는 스마트 디바이스의 상태 데이터를 클라우드에 전달하거나 백엔드 서비스 애플리케이션에서 스마트 디바이스로의 명령을 전달하는 과정에서 이용합니다.
전부 비동기 통신을 제공하고, 보낸 사람과 받는 사람을 분리합니다. 하지만 각각 다른 특성을 지니고 있어 업무에 특성에 맞게 서비스를 선택할 수 있습니다.
정리하자면 4개의 Message Queue 서비스는 다음과 같은 특성을 지니고 있습니다.
위에서 명시한 기능, 성능, 특성의 이유로 각 Message Queue 서비스는 아래와 같은 케이스에서 가장 적합하게 운영될 수 있습니다.
지금까지 알리바바 클라우드에서 제공하는 대표적인 4가지 Message Queue 서비스에 대해서 알아보았습니다. 만약 각 서비스에 대한 Use-case 혹은 정확한 사용법, PoC 절차에 대해 궁금하시다면 cloudkorea@list.alibaba-inc.com으로 메일 주시기 바랍니다.
Haemi Kim - September 15, 2021
JJ Lim - November 10, 2021
JJ Lim - April 19, 2022
JJ Lim - December 3, 2021
JJ Lim - April 13, 2023
JJ Lim - February 28, 2023
AlibabaMQ for Apache RocketMQ is a distributed message queue service that supports reliable message-based asynchronous communication among microservices, distributed systems, and serverless applications.
Learn MoreA message service designed for IoT and mobile Internet (MI).
Learn MoreA fully-managed Apache Kafka service to help you quickly build data pipelines for your big data analytics.
Learn MoreMessage Queue is a distributed message queue service that supports reliable message-based asynchronous communication among microservices, distributed systems, and serverless applications.
Learn MoreMore Posts by JJ Lim