Producer (생산자)
Producer는 메시지를 전송하는 애플리케이션입니다.
Producer는 Consumer(소비자)에게 직접 메시지를 보내지 않습니다.
대신, 메시지를 RabbitMQ 브로커로 전송합니다.
- Producer는 메시지를 RabbitMQ 브로커로만 보냅니다.
- 이후 Consumer가 RabbitMQ 브로커에서 메시지를 읽어 처리합니다.
2. Consumer (소비자)
Consumer는 RabbitMQ 브로커로부터 메시지를 읽어들이는 애플리케이션입니다.
Producer가 메시지를 브로커에 보낸 후, Consumer는 브로커에 저장된 메시지를 읽어 처리합니다.
- 여러 Consumer가 RabbitMQ 브로커에 동시에 연결될 수 있습니다.
- 예: Consumer1, Consumer2 등이 RabbitMQ 브로커에 연결되어 메시지를 수신합니다.
3. Queue (큐)
Queue는 RabbitMQ 브로커 내에서 메시지를 저장하는 버퍼 또는 저장소입니다.
Producer가 메시지를 RabbitMQ 브로커에 보내면, 메시지는 먼저 Queue에 저장됩니다.
Consumer는 이 Queue에서 메시지를 읽어 처리합니다.
- Queue는 RabbitMQ 브로커의 메시지 저장소 역할을 합니다.
- 필요에 따라 여러 Queue를 생성할 수 있습니다.
4. Message (메시지)
Message는 Producer가 Consumer에게 전달하는 정보입니다.
RabbitMQ를 통해 전달되는 메시지는 여러 형식을 가질 수 있습니다:
- 문자열(String)
- JSON
- 바이너리 데이터
- 텍스트
- HTML 등
- 메시지는 Producer에서 RabbitMQ 브로커를 거쳐 Consumer로 전달되는 정보입니다.
5. Exchange (교환기)
Exchange는 Producer와 Queue 사이에서 중간 역할을 하는 구성 요소입니다.
Producer는 메시지를 Queue로 바로 보내는 대신, Exchange로 보냅니다.
Exchange는 특정 규칙에 따라 메시지를 적절한 Queue로 라우팅(분배)합니다.
- Exchange는 Producer와 Queue 간의 중개자 역할을 합니다.
- 라우팅 규칙에 따라 메시지를 적합한 Queue로 전달합니다.
6. Routing Key (라우팅 키)
Routing Key는 Exchange가 메시지를 적절한 Queue로 전달하기 위해 사용하는 주소 또는 키입니다.
복잡한 애플리케이션에서는 여러 Queue가 있을 수 있는데,
Exchange는 메시지가 어느 Queue로 가야 할지 라우팅 키를 통해 결정합니다.
- Producer는 메시지와 함께 라우팅 키를 Exchange에 전달합니다.
- Exchange는 이 키를 사용해 메시지를 적합한 Queue로 라우팅합니다.
7. Binding (바인딩)
Binding은 Queue와 Exchange를 연결하는 링크입니다.
Exchange가 메시지를 Queue로 전달하려면 둘 사이에 반드시 바인딩이 설정되어 있어야 합니다.
라우팅 키를 사용해 이 바인딩이 이루어집니다.
- 바인딩은 Exchange와 Queue를 연결하는 링크입니다.
- Exchange는 바인딩과 라우팅 키를 사용해 메시지를 적절한 Queue로 전달합니다.
RabbitMQ[3] RabbitMQ 아키텍처
일반적인 메시징 시스템 아키텍처우선, 일반적인 메시징 시스템 아키텍처를 살펴봅시다. Producer(생산자): 메시지를 생성하고 보냅니다.Consumer(소비자): 메시지를 읽어들이고 처리합니다.Message
float.tistory.com