메시지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나이다.
메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼라고 생각하면 된다.

메시지 전송 시 송신자가 메시지를 메시지 큐에 추가한다. 해당 메시지는 수신자가 메시지를 검색하고 이를 사용해 어떤 작업을 수행할 때까지 메시지 큐에 저장된다. 각 메시지는 하나의 수신자에 의해 한 번만 처리될 수 있는데, 이러한 이유로 메시지 큐를 이용하는 방식을 일대일 통신이라고 부른다.
1. 비동기(Asynchronous)
데이터를 바로 보내지 않고 큐에 넣어두기 때문에 나중에 처리할 수 있다. 동기화 방식은 많은 데이터(메시지)가 오고 갈 경우 병목이 생길 수 있고, 뒤에 들어오는 요청에 대한 응답이 지연되기 때문에 메시지 큐를 사용함으로써 병목 현상을 방지할 수 있다.
2. 확장성(Scalable)
N:1:M 구조로 다수의 프로세스들이 큐에 메시지를 보낼 수 있다.
3. 탄력성(Resilience)
소비자(수신자) 서비스가 다운되더라도 어플리케이션이 중단되는 것은 아니다. 메시지는 메시지 큐에 남아 있다. 소비자(수신자) 서비스가 다시 시작될 때마다 추가 설정이나 작업을 수행하지 않고도 메시지 처리를 시작할 수 있다.
4. 비동조(Decoupling)
생산자(송신자) 서비스와 소비자(수신자) 서비스가 독립적으로 행동하게 됨으로써 서비스 간 결합도가 낮아진다.
5. 보장성(Guarantees)
메시지 큐는 큐에 보관되는 모든 메시지가 결국 소비자(수신자) 서비스에게 전달된다는 일반적인 보장을 제공한다.
이러한 장점들 덕분에 메시지 큐는 다음과 같은 상황에서 활용된다.