개발/잡다개발

MQ(Message Queue), RabbitMQ

----___<<<<< 2020. 10. 14. 19:10

 MQ에 대해서 알아보겠습니다.

 

 이름에서 나오는 느낌은 메세지를 큐 형태로 쏴준다? 라는 느낌입니다.

 

 아래와 같은 형태에서 생산자와 수신자가 데이터를 교환할 때, 중간에서 MQ가 

 

 

 메시지 큐의 장점으로는 아래와 같은 점이 있습니다.

 

 - 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다.

 - 비동조(Decoupling): 애츨리케이션과 분리할 수 있습니다.

 - 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다.

 - 과잉(Redundancy): 실패할 경우 재실행 가능합니다.

 - 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다.

 - 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다.



Message Queueing은 대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 사용합니다. 프로세스 단위로 처리하는 웹 요청이나 일반적인 프로그램을 만들어서 사용하는데 사용자가 많아지거나 데이터가 많아지면 요청에 대한 응답을 기다리는 수가 증가하다가 나중에는 대기 시간이 지연되어서 서비스가 정상적으로 되지 못하는 상황이 오기 때문에 기존에 분산되어 있던 데이터 처리를 한 곳에 집중하면서 메세지 브로커를 두어서 필요한 프로그램에 작업을 분산시키는 방법을 하는 것이 그 목적입니다.

 

 

 

참고

 - zzong.net/post/3

'개발 > 잡다개발' 카테고리의 다른 글

Flask ec2 gunicorn nginx  (0) 2020.10.16
HTML image 좌표 클릭  (0) 2020.10.14
Redis란  (0) 2020.10.14
RDS란  (0) 2020.10.13
ec2 용량 문제  (0) 2020.10.12