MQ(Message Queue)?
- 프로세스 또는 프로그램 인스턴스 간 데이터를 교환하기 위해 사용하하는 통신 방법
- 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미하며 MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)한다.
- 별도의 공정 작업을 연기할 수 있는 유연성을 제공하여 SOA(Service-Oriendted Architecture)의 개발에 도움을 줄 수 있다.
왜 사용하게 되었을까?
- 어플리케이션과 데이터베이스의 동기적 직접통신 구조

'
: 어플리케이션과 DB가 강하게 결합되어 있어 어플리케이션의 요청&응답 과정에서 DB 서버로의 요청&응답 모두 완료되어야 응답이 가능
다음과 같은 문제가 발생
-
DB의 응답 시간이 길어진다면 어플리케이션 또한 그만큼 응답시간이 길어진다.
-
DB 장애시 어플리케이션이 동작하지 못한다.
-
어플리케이션 입장에서 감당할 수있는 요청 수가 DB에서는 감당 불가능하다면,성능저하나 장애가 발생할 수 있다.
-
MQ를 통한 어플리케이션과 데이터베이스의 통신

: 어플리케이션은 큐에 요청을 쌓고, DB는 큐의 요청을 꺼내 처리
- 어플리케이션은 큐에 요청을 보내고, DB의 응답을 기다리지 않고 응답을 보낼 수 있다.
- DB 장애 발생시에도 어플리케이션은 독립적으로 동작이 가능하다.