보람찬 코기의 개발자 블로그
article thumbnail
반응형

메시지 큐(Message Queue)

메시지 큐는 애플리케이션 간의 비동기 데이터 통신을 지원하는 시스템으로, 데이터를 큐에 저장하고 처리할 수 있도록 도와준다.

 

특히, 대규모 분산 시스템에서 안정적이고 유연한 통신을 구현할 때 유용하다.

 

즉, 메시지 큐는 분산된 환경에서 프로세스나 프로그램의 시스템 간 데이터를 교환하기 위해 사용되는 통신 기법이다.

 

 

📌 주요 특징

 

  • 비동기적 통신: 발신자와 수신자가 독립적으로 작업을 수행할 수 있도록 지원한다.
  • 중간 저장소 역할: 데이터를 큐(queue)에 임시로 저장하고, 소비자가 이를 처리한다.
  • 분산 시스템 필수 구성 요소: 작업 부하 분산, 내결함성, 확장성 제공.

 

 

https://tecoble.techcourse.co.kr/post/2021-09-19-message-queue/

 


주요 구성 요소 🔧

  • 메시지(Message): 큐에 저장되는 데이터 단위. JSON, XML, 텍스트 등 다양한 형식으로 표현된다.
  • 프로듀서(Producer): 메시지를 생성하여 큐에 추가하는 주체.
  • 큐(Queue): 메시지를 저장하는 데이터 구조. FIFO 방식이 일반적이다.
  • 컨슈머(Consumer): 큐에서 메시지를 가져와 작업을 처리하는 주체.
  • 브로커(Broker): 메시지의 송수신, 라우팅, 보관을 관리하는 시스템.

동작 원리 🚀

  1. 프로듀서가 메시지를 생성하고 큐에 저장한다.
  2. 는 메시지를 FIFO(선입선출) 방식으로 관리한다.
  3. 컨슈머가 큐에서 메시지를 가져와 작업을 처리한다.

메시지 큐의 장점 🌟

  • 비동기 처리: 작업을 독립적으로 처리해 시스템 성능 최적화.
  • 확장성: 컨슈머를 추가해 부하를 분산 가능.
  • 내결함성: (컨슈머) 실패한 메시지를 안전하게 보관하거나 재처리 가능.
  • 유연성: 발신자와 수신자 간 결합도를 낮춰 서비스 간 독립성 확보.

메시지 큐의 단점 ⚠️

  • 지연: 메시지가 큐에 대기하는 동안 지연 발생 가능.
  • 복잡성: 추가 구성 요소로 인해 시스템 관리가 복잡해질 수 있다.
  • 장애 가능성: 브로커 장애 시 시스템 전체에 영향을 줄 수 있음 (고가용성 설정 필요).

사용 사례💡 

  • 백그라운드 작업: 이미지 처리, 이메일 발송 등.
  • 마이크로서비스 통신: 서비스 간 이벤트 전달 및 데이터 동기화.
  • 데이터 스트리밍: 실시간 로그 수집 및 분석.
  • 작업 분배: 여러 워커(Worker) 간 부하 분산.

주요 메시지 큐 구현체 목록

구현체 특징
RabbitMQ AMQP 기반, 간단한 설정과 안정적 메시징 기능.
Kafka 대용량 데이터 스트리밍 및 분산 처리에 적합.
SQS AWS의 관리형 서비스로 간단한 설정 제공.
Redis 인메모리 기반 실시간 메시징(Pub/Sub).
ActiveMQ Java 기반, JMS 표준 지원.

반응형

'Computer Science (CS)' 카테고리의 다른 글

[CS] AMQP 와 RabbitMQ 분석하기  (2) 2025.01.04
profile

보람찬 코기의 개발자 블로그

@BoChan

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!