본문 바로가기
MQ

[MQ] Message Queue?

by 상국이 2021. 6. 10.
728x90

MQ(Message Queue) ?

 - MOM 시스템

 - 프로세스 또는 프로그램 인스턴스가 데이터를 서로 교환할 때 사용하는 방법

* 데이터 교환시 시스템이 관리하는 메시지 큐를 이용

 

MOM(Message Oriented Middleware) ? 

 - 비동기 메시지를 사용하는 다른 응용프로그램 사이에서 데이터 송수신

* Kafka, RabbitMQ, ActiveMQ 등이 있음

 

등장배경

- 데이터가 많아지면 요청에 대한 응답을 기다리는 수가 증가하다가 나중에는 대기 시간이 지연되어 서비스가 정상적으로 되지 못하는 상황을 방지

 

장점

 - Asynchronous(비동기) : Queue에 넣기 때문에 나중에 처리 가능

 - Decoupling(비동조) : 애플리케이션과 분리할 수 있음

 - Resilience(탄력성) : 일부 실패 시 전체에 영향 없음

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

 - Guarantees(보증) : 작업의 처리 완료를 확인 가능

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

 

단점

 - Message Broker 구축에 필요한 금전, 인적자원에 대한 비용 발생

 - 메시지가 잘 전달되었는지 확인이 어려움

 

사용

 - 대용량 데이터를 처리하기 위한 배치 작업, 채팅 서비스, 비동기 데이터를 처리할 때 사용

 - 사용할 수 있는 자원에 비해 처리해야할 데이터 양이 지나치게 많은 경우

 - 다수의 어플리케이션이 데이터 저장소를 공유할 필요성이 있는 경우

 - 이메일 발송 및 문서 업로드 가능

 

AMOP(Advanced Message Queueing Protocol) ?

 - 메시지 지향 미들웨어를 위한 프로토콜

 - Producer가 Message를 Queue에 넣어두고, Consumer가 Message를 처리하는 방식

 

 

RabbitMQ

https://developing-countries.tistory.com/10

 

RabbitMQ

RabbitMQ ?  - Erlang 으로 AMQP를 구현한 메시지 브로커 시스템  - Channel 이라는 개념을 통해 하나의 TCP 연결을 공유해서 사용할 수 있는 기능 제공 동작 1. 메시지를 발행하는 Producer에서 Broker의 Exch..

developing-countries.tistory.com

ActiceMQ

https://developing-countries.tistory.com/11

 

ActiveMQ

ActiveMQ ?  - JMS(Java Message Service) 클라이언트와 함께 자바로 작성된 오픈 소스 메시지 브로커  - 엔터프라이즈 기능 제공(하나 이상의 클라이언트나 서버로부터 통신을 조성시키는 기능) JMS ?  -

developing-countries.tistory.com

kafka

https://developing-countries.tistory.com/12

 

KafKa

kafka?  - 여러 대의 분산 서버에서 대량의 데이터를 처리하는 분산 메시징 시스템 구성요소  - Broker  - Message  - Producer  - Consumer  - Topic RabbitMQ vs Kafka vs ActiveMQ ? https://developing-..

developing-countries.tistory.com

 

728x90

'MQ' 카테고리의 다른 글

[MQ] ActiveMQ  (0) 2021.06.10
[MQ] RabbitMQ  (0) 2021.06.10
[MQ] RabbitMQ vs Kafka vs ActiveMQ  (0) 2021.06.10

댓글