Network

MQ 메세지 큐란?

ellapk 2024. 8. 27. 22:51

 

MQ 메세지 큐란?

 

메시지 큐는 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템으로 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술이다.

 

메세지는 데이터 패킷을 뜻하고, 엄밀하게는 임시로 저장하는 버퍼라고 볼 수 있다.

 

 

 

조금 더 간단히 보자면, Producer가 정보를 제공하고, Consumer가 정보를 제공받아서 사용한다.

여기서 Queue는 Endpoint간에 직접적으로 통신하지 않고, Queue를 통해 중개된다.

 

 

 

언제 사용하는 것이 좋을지?

 

Consumer 소비자가 언제 메세지를 가져가서 처리할 지는 보장하지 않는다.

따라서 언젠가 큐에 있는 메세지가 소비되어 처리될 수 있는 작업들을 대상으로 처리하는 것이 좋다.

 

핵심 비즈니스보단, 바로 처리되지 않아도 언젠가 처리되어야할 작업들에 메세지 큐를 사용하면 된다.

 

 

 

 

MQ 장점

  • 비동기 (Asynchronous)
    메시지 큐는 생산된 메시지의 저장, 전송에 대해 동기 방식으로 처리 하지 않고 큐에 메시지를 생산할 뿐이므로 부가 적인 작업을 처리할 떄 까지 기다릴 필요가 없어 핵심 로직에 집중할 수 있다.
  • 낮은 결합도 (Decouplling)
    어플리케이션 간의 핵심 작업에 집중하도록 처리하기 때문에 각 서비스 간의 결합도를 낮출 수 있는 장점이 있다.
  • 확장성 (Scalable)
    생산자와 서비스를 원하는 만큼 추가 가능하므로 확장성이 좋다.
  • 탄력성 Resilienece)
    메시지의 처리가 일부 실패 혹은 장애가 발생하더라도 전체에 영향을 주지 않으며, 메시지를 보관하고 있으므로 장애를 처리한 후에, 작업을 다시 시작할 수 있다.
  • 영속성 (Persistence)
    데이터를 메모리 대신에 디스크에 저장하여 데이터 유실을 어느정도 방지 가능하다.

 

MQ 단점

 

메세지 큐를 운영 관리하기 위한 시스템이 따로 필요하여, 이에 따른 관리 비용들이 늘어남. 오버헤드 발생가능성 존재