본문 바로가기

개발공부/웹개발

메세지큐란? (Message Queue)

메세지 큐란?

- 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나

- 메세지 지향 미들웨어(Message Oriented Middleware:MOM)를 구현한 시스템을 의미


메세지 지향 미들웨어란?

비동기 메세지를 사용하는 응용프로그램들 사이에서 데이터를 송수신하는것.


간단한 구조에서 쓰이는 건 이상하고, 많은 데이터 통신이 이루어지는 작업이 있을때 쓰인다.

 

부가적인 서비스를 행할때 던져놓고 되길 기다리며 다른작업을 하기 위함이다.(비동기적)

당장 실행해서 값을 얻어야하는 서비스들 보다는 부가적인 서비스를 제공할때 쓰인다.

 

 

예를 들면 

1) 이메일보내기

2) 블로그에 이미지를 올려 포스팅할때 사진을 최적화시키는 서비스

3) 대용량 배치 작업

4) 채팅 서비스

 

다 당장 실행되어야 하는 것은 아니다. 조금의 시간이 걸려도 사용자들에게 큰 영향을 미치지 않는다.

 

중간에 큐를 두고 데이터를 처리해서 많은 데이터 통신으로 병목현상이 생기거나 서버의 성능이 저하되는 것을 막기 위함. 미들웨어에 부가적인 서비스를 위임하여 순차적으로 처리되게끔 한다.

 

 

메세지 큐의 장점

: 비동기, 낮은 결합도, 확장성, 보장성

 

오픈소스: RabbitMQ, Kafka, ActiveMQ.


문득 비교를 하자면 fitching machine에 가깝지 않을까 생각을 했다

 

야구공(서비스들)이 모여서 차례대로 던져지는(서비스가 호출) 것 같이 피칭기계(미들웨어)가 처리 할 수 있도록 하는것!

공이 조금 늦게 나와도 그러려니 다들 하는...

언젠간 나올걸 아니까~ 

그동안 사람이 공을 줍고 던지고 안하고 사진을 찍는다거나 다른일을 할 수 있으니까 (비동기)

 

오로지 개인적인 생각과 예시니 아니다싶으면 의견나눠주세요...!(공부하는거라 알아서 이해하는 중)