메세지 큐는 프로그램 간 통신(IPC) 기법 중 하나로, 메세지 기반의 미들웨어를 사용하여 시스템 간 또는 프로세스 간에 데이터를 교환할 수 있도록 돕습니다. 프로듀서(생산자)가 메세지 큐에 보내고, 컨슈머(소비자)가 그 메세지를 받아 처리하는 방식으로 동작합니다.
구성 요소
- Producer (생산자) : 메세지를 생성하고 메세지 큐에 전송하는 역할
- Queue (큐) : Producer로 메세지를 받아 저장하고, Consumer에게 전달하는 중간 저장소 역할
- Consumer (소비자) : 큐에서 메세지를 꺼내어 처리하는 역할
작동 원리
- 메세지 생성 : 프로듀서는 특정 이벤트 또는 데이터 생성 후 메세지 형태로 큐에 전달합니다.
- 메세지 저장 : 큐는 받은 메세지를 순차적으로 저장하며, 각 메세지는 일반적으로 타임스탬프나 순서 등의 메타데이터와 함께 저장합니다.
- 메세지 처리 : 컨슈머는 큐에서 메세지를 가져가 처리합니다. 이때, 메세지는 보통 FIFO(First In First Out) 순서로 처리되나, 설정에 따라 다른 순서로 처리할 수 도 있습니다.
주요 특성
- 비동기성 : 메세지 큐는 Producer와 Consumer가 각각의 속도로 작업을 처리할 수 있도록 비동기적인 통신을 가능하게 함. 이는 두 프로세스가 서로의 상태나 실행을 기다리지 않도록 해 전체적인 시스템 효율성 높임
- 디커플링 : 프로듀서와 컨슈머가 직접적으로 연결되어 있지 않고, 메세지 큐를 통해 간접적으로만 데이터를 교환한다. 시스템 유연성을 증가시키고, 각 컴포넌트의 변경이 다른 컴포넌트에 미치는 영향을 최소화합니다.
- 확장성 : 큐 시스템은 종종 분산 환경에서 실행될 수 있으며, 수평적으로 확장 가능하여 높은 처리량을 감당할 수 있습니다.
- 유연성 : 메세지 큐는 다양한 종류의 데이터를 처리할 수 있고, 다양한 시나리오에 맞게 조정될 수 있습니다.
AMQP(Advanced Message Queue Protocol)
AMQP는 메세지 지향 미들웨어를 위한 개방형 표준 응용 계층 프로토콜입니다.