티스토리 뷰

Infrastructure

MQ(Message Queue) 란?

Hero_O 2022. 8. 22. 20:13

메시지 큐 ( MQ : Message Queue )


메시지 큐란?

MOM(Message Oriented Middleware)은 프로세스 혹은 인스턴스 사이에 비동기 통신 방법이다. 이를 구현한 시스템을 메시지 큐(Message Queue) 라고 한다. 이 때, 메시지는 요청, 응답, 오류 메시지등을 의미한다.

 

MQ의 특징
  • MSA(Micro Service Architecture)에서 서비스 ↔ 서비스 간 비동기 통신
  • 메시지를 큐(Queue)에 임시 저장하고, 해당 메시지가 소비자(Consumer)에 의해 처리 된 후 삭제된다.
  • 큐는 메시지를 임시 저장하는 버퍼라고 할 수 있고, 메시지 큐는 메시지 생산자(Producer)와 소비자(Consumer)간의 일대일 통신 방법이다.
  • 메시지가 큐에 저장된 메시지의 처리 시점을 보장하지는 않는다.
  • 요청이 왔을 때 핵심적인 작업은 우선적으로 처리하고, 처리를 유예할 수 있는 작업은 메시지 큐에 저장해두고 소비자가 처리할 수 있을 때 꺼내서 처리하도록 하여 동시처리 성능을 증가시킨다.

 

MQ의 장점
  1. 비동기 ( Asynchronous )
    • 동시에 너무 많은 메시지를 처리하게 되면 병목현상이 발생할 수 있다. 이 때 MQ를 사용하면 큐(Queue)에 다 수의 메시지를 저장하고 나중에 처리하는 비동기 방식을 통해 병목 현상을 해결할 수 있다.
    • 예를 들어, 특정 시간에 모든 유저에게 PUSH를 보내게 되면, 그 작업 외의 작업을 처리하기는 힘들어진다. 이를 큐에 임시 저장 해두고 비동기적으로 처리하면 더 많은 요청을 동시처리 할 수 있게 한다.
  2. 낮은 결합도 ( Decoupling )
    • 생산자 서비스와 소비자 서비스가 서로 독립적으로 작업하게 한다.
  3. 탄력성 ( Resilience )
    • 메시지 큐에 메시지가 저장되어 있어 서비스의 문제가 있어 중단되더라도 재 시작할 수 있고, 일부가 실패 하더라도 전체에 영향을 주지 않는다.
  4. 보증 ( Gurarantees )
    • 메시지 큐에 저장된 모든 메시지가 소비자에게 전달 될 것을 보장하여 작업이 처리될 것을 보증한다.
  5. 확장성 ( Scalable )
    • 다 수의 프로세스가 큐에 메시지를 보낼 수 있어 확장이 가능하다.

 

 

댓글