메시지 브로커란 무엇입니까?

애플리케이션 통신 방식은 점점 더 큰 문제가 되고 있습니다. 메시징 미들웨어를 사용하면 이러한 문제가 단순화되고 가장 까다로운 조건을 충족하도록 확장 및 확장되는 공통 통신 인프라가 가능합니다. 그러나 통신은 다양한 형태로 발생할 수 있으며 메시징 미들웨어가 통신을 제공하는 방식도 이와 같습니다.

메시지 브로커 다이어그램

메시징 미들웨어가 사용하는 통신 방법 중 하나는 메시지 브로커를 사용하는 서버 기반 모델입니다. 메시지 브로커를 사용하여 소스 애플리케이션(생산자)은 데이터 마샬링, 라우팅, 메시지 변환, 지속성 및 모든 적절한 대상 (소비자)에 전달을 제공 할 수있는 메시지를 서버 프로세스로 보냅니다. 메시지 브로커의 정의 특성은 브로커 자체가 별개의 서비스라는 것입니다. 생산자와 소비자는 표준 또는 독점 프로토콜을 사용하여 브로커와 통신합니다. 메시지 브로커는 일반적으로 클라이언트의 모든 상태 관리 및 추적을 제공하므로 개별 애플리케이션이 이러한 책임을 맡을 필요가없고 메시지 전달의 복잡성이 메시지 브로커 자체에 내장됩니다.

메시지 브로커와의 통신에는 다음 두 가지 기본 형식이 있습니다:

  • 게시 및 구독 (주제)
  • 지점 간 (대기열)
Kafka, Pulsar 및 기타 메시징 기술 중에서 선택하세요
Kafka, Pulsar 및 기타 메시징 기술 중에서 선택하세요
비즈니스에 적합한 메시징 기술을 선택하는 방법은 무엇인가요? 자세한 내용은 최신 백서를 읽어보십시오.

메시징 게시 및 구독

메시지 게시 및 구독 시스템에서 생산자는 주제에 대한 메시지를 발송합니다. 이 모델에서 생산자는 게시자로, 소비자는 구독자로 알려져 있습니다. 동일한 주제에 대해 하나 이상의 게시자가 게시할 수 있으며 여러 구독자가 하나 이상의 게시자로부터 메시지를 받을 수 있습니다. 구독자는 주제를 구독하고 주제에 게시된 모든 메시지는 주제의 모든 구독자에게 수신됩니다. 이 모델은 애플리케이션이 구독하는 주제에 따라 단순 관심 기반 전달을 제공합니다.

지점 간 통신

가장 단순한 형태의 지점 간 통신에는 생산자와 소비자가 하나씩 있습니다. 이 스타일의 메시징은 일반적으로 대기열을 사용하여 소비자가 받을 때까지 생산자가 보낸 메시지를 저장합니다. 메시지 생산자는 메시지를 대기열로 보냅니다. 메시지 소비자는 큐에서 메시지를 검색하고 메시지가 수신되었다는 확인을 보냅니다. 둘 이상의 생산자가 동일한 대기열에 메시지를 보낼 수 있으며 둘 이상의 소비자가 동일한 대기열에서 메시지를 검색할 수 있습니다. 여러 소비자가 사용되는 경우 각 소비자는 일반적으로 동시 처리를 위해 메시지 스트림의 일부를 수신합니다.

서버 기반 메시지 브로커

서버 기반 메시지 브로커는 중앙 집중식 처리, 중앙 집중식 메시지 배포 및 중앙 집중식 데이터 지속성을 포함하여 많은 이점을 가지고 있습니다. 예를 들어 많은 독점 메시지 브로커, JMS (Java Message Service) 구현, Apache Kafka , Apache Pulsar 및 Eclipse Mosquitto와 같은 오픈 소스 제품이 있습니다.

어떤 경우에는 탈중앙화 통신 모델이 필요합니다. 이 "브로커리스"또는 피어 투 피어 접근 방식은 일반적으로 매우 짧은 대기 시간이 필요한 사용 사례의 경우 애플리케이션 간의 직접 통신을 지원하는 메커니즘을 제공합니다.