Message Queue란?
메시지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어(Message Oriented Middleware:MOM)를 구현한 시스템을 의미한다.
메시지 지향 미들웨어란 비동기 메시지를 사용하는 응용 프로그램들 사이에서 데이터를 송수신하는 것을 의미한다. 여기서 메시지란 요청, 응답, 오류 메시지 혹은 단순한 정보 등의 작은 데이터가 될 수 있다.
메시지 큐는 메시지를 임시로 저장하는 간단한 버퍼라고 생각하면 된다.
메시지를 전송 및 수신하기 위해 중간에 메시지 큐를 두는 것이다.
MOM(Message Oriented Middelware) 의 종류
MOM은 MQ를 포괄하고 있고 MQ에는 Kafka, RabbitMQ, ActiveMQ 등
Message Queue 작동방법
- 메시지 전송 시 생산자(Producer)로 취급되는 컴포넌트가 메시지를 메시지 큐에 추가
- 해당 메시지는 소비자(Consumer)로 취급되는 또 다른 컴포넌트가 메시지를 검색하고 이를 사용해 어떤 작업을 수행할 때까지 메시지 큐에 저장
- 각 메시지는 하나의 소비자에 의해 한 번만 처리
-> 이러한 이유로 메시지 큐를 이용하는 방식을 일대일 통신이라고 부른다.
장점
- 비동기(Asynchronous): Queue에 넣어두기 때문에 나중에 처리할 수 있다.
- 분리 또는 비동조(Decoupling): 애플리케이션과 분리할 수 있다.
- 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않는다.
- 과잉(Redundancy): 실패 할 경우 재실행이 가능하다.
- 보증(Guarantees): 작업이 처리된 걸 확인할 수 있다.
- 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있다.