메시지 큐(Message Queue)는 비동기적으로 메시지를 전달하는 미들웨어다. 생산자(Producer)가 큐에 메시지를 넣으면, 소비자(Consumer)가 나중에 처리한다. 시스템 간 느슨한 결합과 부하 분산에 활용된다.
동작 원리
생산자(주문 서비스) → [메시지 큐] → 소비자(알림 서비스)
"주문 완료" (비동기 처리)
생산자는 소비자의 처리 완료를 기다리지 않음
→ 빠른 응답, 느슨한 결합, 재시도 지원
주요 메시지 큐
RabbitMQ 예시 (Python)
python
import pika
# 생산자
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='orders')
channel.basic_publish(exchange='', routing_key='orders',
body='{"order_id": 123, "product": "apple"}')
# 소비자
def callback(ch, method, properties, body):
print(f"주문 처리: {body}")
ch.basic_ack(delivery_tag=method.delivery_tag)
channel.basic_consume(queue='orders', on_message_callback=callback)
channel.start_consuming()
관련 개념
- •마이크로서비스 — 메시지 큐의 주요 사용 환경
- •이벤트 드리븐 — 메시지 큐 기반 아키텍처
- •Kafka — 대용량 메시지 스트리밍
참고문헌
- •Richardson, C. Microservices Patterns (2018)