독립된 서비스 간 데이터를 주고받을 수 있는 형태의 미들웨어를 말한다.
여기서 미들웨어란 애플리케이션들을 연결해 이들이 서로 데이터를 교환할 수 있게 해주는 소프트웨어이다.
메세지 지향 시스템이란 메세지 API를 통해 각 분산되어있는 애플리케이션간의 다리역할을 함으로써 데이터를 교환할 수 있도록 하는 시스템이다.
고로 메세지 지향 미들웨어(MOM)이란 메세지를 통해 여러 분산되어 있는 시스템간의 Connector 역할로 결합성을 낮추고, 이들이 서로 실시간 비동기식 데이터를 교환할 수 있도록 하는 소프트웨어이다.
비동기 방식으로 메세지를 전달한다.
Queue, Broadcast, Multicast 등의 방식으로 메세지를 전달한다.
메세지를 발행하는 Publisher (Producer), 소비하는 Subscribe (Consumer)로 구성되어 있다.
메세지 큐는 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 통신 방법이다. 더 큰 개념으로는 메세지 지향 미들웨어(MOM:Message Oriented Middleware)를 구현한 시스템을 의미한다.
Producer, Consumer가 존재하며 Producer는 메세지를 큐에 전송하고 Consumer가 큐의 메세지를 처리하는 방식이다.
MQ를 사용하면 비동기로 요청을 처리하고 Queue에 저장하여 Consumer에게 병목을 줄여줄 수 있는데 장단점은 존재하기 마련이다.
보내는 쪽 | 받는 쪽 |
---|---|
Sender | Receiver |
Producer | Consumer |
Publisher | Subscriber |
장점 | 내용 |
---|---|
비동기 (Asynchronous) | 큐(Queue)에 넣기 때문에 나중에 처리할 수 있다. |
비동조 (Decoupling) | 애플리케이션(Application)과 분리할 수 있다. |
과잉 (Redundancy) | 실패할 경우 재실행이 가능하다. |
보증 (Guarantees) | 작업이 처리된 것을 확인할 수 있다. |
확장성 (Scalable) | 다수의 프로세스들이 큐에 메세지를 보낼 수 있다. |
서버 부하가 많은 작업
부하 분산
데이터 손실 방지