- [Backend] MQ2025년 05월 05일
- 아몬드맛빼빼로
- 작성자
- 2025.05.05.:23
반응형
Message Queue?
메시지 큐(Message Queue; MQ)는 메시지를 송신하는 애플리케이션(Producer)과 이를 수신하는 애플리케이션(Consumer) 간의 비동기 통신을 가능하게 하는 시스템이다. 메시지 큐를 사용하면 메시지를 임시 저장하는 큐를 통하여 애플리케이션 간 통신이 이루어지며 이로 인하여 애플리케이션의 확장성과 성능을 향상할 수 있다.
주요 특징
1. 비동기 통신: Producer와 Consumer는 당연하지만 독립적으로 동작하므로 Producer가 큐에 메세지를 넣으면 Consumer가 이를 필요하고 또한 가능할 때 가져가 처리한다. 따라서 서로 직접 통신하지 않아도 된다.
2. 내결함성: 큐에 메세지를 저장함으로서 Consumer가 다운되거나 문제가 생기더라도 메시지가 큐에 저장되어 있으므로 Consumer가 복구되면 이를 처리할 수 있다.
3. 확장성: 여러 Consumer를 두어 메시징 처리 성능을 높일 수 있으며 큐는 메세지를 균등하게 분배할 수 있다.
4. 유연성: Producer와 Consumer가 서로 다른 기술 스택을 채택하여 사용하더라도 사용할 수 있다.
"일반적인" 사용사례
- 작업 큐: 백그라운드 작업을 처리하기 위하여 사용된다. 예를 들자면 이미지 처리,이메일 전송등의 작업을 메시지 큐에 넣어 비동기적으로 처리할 수 있다.
- 부하분산: 다수의 Consumer가 메세지를 처리하여 부하를 분산시킬 수 있다.
- 데이터 스트리밍: 실시간 데이터 스트리밍을 처리할 때 사용될 수 있다.예를 들어, 로그 데이터의 실시간 분석 등에서 도입할 수 있다.
대표적인 MQ 시스템
- RabbitMQ: AMQP(Advanced Message Queuing Protocol)을 사용하며, 다양한 프로그래밍 언어를 호환된다.
- Apache Kafka: 고성능, 분산형 Mq 시스템으로, 대규모 실시간 데이터 스트리밍에 적합하다.
- Amazon SQS: AWS에서 제공되는 MQ 서비스로 설정과 운영이 간편하다.
더보기AMQP?
주로 비동기 메세지 송수신을 위해 사용되는 프로토콜로 분산 시스템에서 서로 신뢰성 있는 통신이 가능케 한다.
정리
메세지 큐는 비동기적이고 내결함성이 있는 애플리케이션 간 통신을 가능케 하며 현대 대규모 애플리케이션에서 필수적인 기술로 부상하고 있다. 이러한 메시지 큐들의 사용법을 미리 익혀두면 언젠가 반드시 필요한 순간에 알맞게 사용할 수 있을 것이다!
'Backend' 카테고리의 다른 글
[Backend] EDA (0) 2025.07.15 [Backend] OAuth와 JWT (0) 2025.06.08 [Backend] CloudWatch 이론 (0) 2025.04.29 [Backend] Feign (0) 2025.03.26 [Backend] Grafana Loki (0) 2025.03.06 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)