/ EXITEM, TIL

MOM(Message Oriented Middleware)

MOM (Message Oriented Middleware)

미들웨어의 한 종류로, 애플리케이션 간의 비동기식 메시지 전달을 지원하는 기술입니다.
애플리케이션 간데이터 전송중개하는데 중점을 둡니다. 또한, 대용량 처리와 지연 시간(Latency) 감소를 위해 비동기적인 메시지 처리 방식을 채택합니다.

예를 들어, 온라인 주문 시스템에서 주문 정보를 입력하는 웹 애플리케이션과 결제를 처리하는 결제 시스템 간의 통신에서 MOM을 사용할 수 있습니다.
주문 정보를 메시지로 전송하면, 결제 시스템은 메시지를 받아 해당 주문에 대한 결제를 처리하고, 처리 결과를 다시 메시지로 응답합니다.
이러한 방식으로 애플리케이션 간의 통신을 구현하면, 각각의 애플리케이션이 독립적으로 동작할 수 있기 때문에 시스템 전체의 안정성과 확장성이 높아집니다.

발신자 애플리케이션이 메시지를 보내면 이를 대신 수신자 애플리케이션이 받아 처리하는 방식으로 작동합니다.
이를 위해 MOM은 메시지 브로커(Message Broker)라는 중간 매개체를 사용합니다.
발신자 애플리케이션은 메시지 브로커에게 메시지를 보내며, 수신자 애플리케이션은 메시지 브로커로부터 메시지를 받습니다.

이러한 메시지 전달 방식은 느슨한 결합(loose coupling)을 제공합니다.
즉, 발신자와 수신자 간에 직접적인 연결이 필요하지 않으며, 애플리케이션을 분리함으로써 애플리케이션 간의 의존성을 낮추어 유연성과 확장성을 높입니다.
또한, 메시지 큐(Message Queue)라는 기능을 통해 메시지를 안전하게 저장하고 처리할 수 있어, 안정성과 신뢰성을 보장할 수 있습니다.

다양한 프로토콜과 API를 지원하며, 다양한 애플리케이션과 시스템 간의 통신을 가능하게 합니다.

메시지 큐는 메시지를 저장하는 일종의 버퍼로, 메시지를 순차적으로 처리할 수 있도록 보관합니다.
이를 통해 대량의 메시지를 처리할 때에도 일관성 있고 안정적인 처리가 가능하며, 수신자 애플리케이션이 처리 능려이 부족한 경우에도 메시지를 안전하게 보관할 수 있습니다.

분산 시스템에서 주로 사용되며, 대규모 시스템에서 데이터를 효율적으로 전송하고 처리하기 위해 필요한 기술입니다.
다양한 프로그래밍 언어와 플랫폼에서 사용할 수 있으며, 대표적인 MOM 제품으로는 Apache ActiveMQ, RabbitMQ, IBM MQ 등이 있습니다.

그림으로 이해하기 위해서는 네이버 블로그 참조