퍼블리셔
퍼블리셔 (Publishers)
퍼블리셔는 메시지를 브로커로 보내는(발행하는) 주체예요. 메시징에서 publisher(또는 producer)는 일반적으로 메시지를 발행하는 애플리케이션(또는 애플리케이션 인스턴스)을 가리켜요. 같은 애플리케이션이 메시지를 컨슘해서 동시에 컨슈머일 수도 있어요.
퍼블리셔 가이드가 다루는 것
이 가이드는 퍼블리셔와 관련된 다양한 주제를 다뤄요.
- 기본 개념
- 퍼블리셔 수명주기
- 프로토콜별 차이
- 메시지 속성과 전달 메타데이터
- 퍼블리셔 측 데이터 안전 주제(연결 복구, 퍼블리셔 확인)
- 예외 처리
- 리소스 알람의 영향
- 라우팅되지 않은 메시지 처리
- 퍼블리셔 관련 메트릭
- 동시성 고려사항
- 모든 퍼블리셔를 일시적으로 차단하는 방법
- 퍼블리셔의 흔한 문제 해결
가이드는 AMQP 0-9-1에 초점을 맞추고, RabbitMQ가 지원하는 다른 프로토콜(AMQP 1.0, MQTT, STOMP)과의 주요 차이를 짚어요.
메시지 발행과 라우팅
메시지를 발행할 때 퍼블리셔는 어떤 익스체인지로 보낼지, 그리고 라우팅 키를 함께 지정해요. 익스체인지는 라우팅 규칙에 따라 메시지를 적절한 큐로 보내요. 메시지가 어떤 큐에도 라우팅되지 않으면 이를 "라우팅되지 않은 메시지(unroutable message)"라고 하고, RabbitMQ는 이를 처리하는 메커니즘을 제공해요.
데이터 안전
퍼블리셔 측에서 메시지가 실제로 브로커에 도달했는지 확인하고 싶다면 **퍼블리셔 확인(publisher confirms)**을 사용해요. 연결이 끊겼을 때는 연결 복구(connection recovery)와 함께 확인을 조합해서, 메시지를 잃지 않고 재전송할 수 있게 구성하는 게 안전해요.
리소스 알람(resource alarm)이 걸리면 브로커가 발행을 일시적으로 차단할 수 있어요. 이 상황을 처리하는 방법도 퍼블리셔가 알아야 할 중요한 부분이에요.