Backend

[Backend] MQ

아몬드맛빼빼로 2025. 5. 5. 16: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] CloudWatch 이론  (0) 2025.04.29
[Backend] Feign  (0) 2025.03.26
[Backend] Grafana Loki  (0) 2025.03.06
[Backend] gRPC  (1) 2025.02.28
[Backend] MySQL에서 한글 검색을...?  (0) 2025.02.06