게시-구독 패턴은 생산자가 보낸 메시지가 여러 소비자에 의해 받아들여짐을 의미합니다. 메시지가 여러 소비자에 의해 소비되고 처리됨으로써 이를 방송 패턴 또는 일대다 패턴이라고도 합니다.
참고: RabbitMQ는 팬아웃 교환 유형을 사용하여 게시-구독 패턴을 구현하기 때문에 팬아웃 패턴이라고도 불립니다.
아키텍처 다이어그램
설명:
- P는 생산자를 나타내며, C1 및 C2는 소비자를 나타냅니다. 빨간색은 큐를 나타내며, X는 교환을 나타냅니다.
- 교환은 교환에 바인딩된 모든 큐로 메시지를 전달하는 역할을 합니다.
- 여러 큐를 정의할 수 있으며, 각각은 동일한 교환에 바인딩됩니다.
- 각 큐는 하나 이상의 소비자를 가질 수 있습니다.
팁: 동일한 큐에서 메시지는 한 소비자만 처리할 수 있습니다. 팬아웃 패턴이 메시지 방송을 실현하는 이유는 본질적으로 여러 메시지 큐를 통해 이루어지기 때문입니다.
사용 사례
게시-구독 패턴은 흔히 사용되는 일대다 소비 패턴입니다. 예를 들어, 전자 상거래 주문이 완료된 후 주문 메시지가 생성됩니다. 창고 모듈은 주문 메시지를 구독하여 출하를 처리하고, 알림 모듈은 주문 메시지를 구독하여 문자 메시지를 전송하고, 포인트 모듈은 주문 메시지를 구독하여 포인트를 처리합니다. 필요에 따라 메시지를 구독함으로써 비즈니스 확장을 달성하며, 낮은 결합 디자인 패턴입니다.