검색

14.5. 클러스터형 메시지 그룹화 구성

download PDF

메시지 그룹화를 사용하면 클라이언트가 특정 유형의 메시지 그룹을 동일한 소비자가 직렬로 처리할 수 있습니다. 클러스터의 각 브로커에 그룹화 처리기를 추가하면 클라이언트가 클러스터의 모든 브로커에 그룹화된 메시지를 보낼 수 있고 동일한 소비자가 올바른 순서로 이러한 메시지를 계속 사용할 수 있습니다.

참고

그룹화 및 클러스터링 기술은 다음과 같이 요약할 수 있습니다.

  • 메시지 그룹화는 메시지 사용에 순서를 적용합니다. 그룹에서는 다음 메시지를 진행하기 전에 각 메시지를 완전히 사용하고 승인해야 합니다. 이 방법론은 동시성이 옵션이 아닌 직렬 메시지 처리로 이어집니다.
  • 클러스터링은 메시지 처리량을 높이기 위해 브로커를 수평으로 확장하는 것을 목표로 합니다. 수평 확장은 메시지를 동시에 처리할 수 있는 추가 소비자를 추가하여 달성됩니다.

이러한 기술은 서로 일치하지 않기 때문에 클러스터링 및 그룹화 사용을 피하십시오.

로컬 처리기와 원격 처리기의 두 가지 유형의 그룹화 처리기 가 있습니다. 브로커 클러스터를 사용하면 특정 그룹의 모든 메시지를 적절한 큐로 라우팅하여 의도한 소비자가 올바른 순서로 사용할 수 있도록 합니다.

사전 요구 사항

  • 클러스터의 각 브로커에 하나 이상의 소비자가 있어야 합니다.

    메시지가 대기열의 소비자에 고정되면 그룹 ID가 동일한 모든 메시지가 해당 큐로 라우팅됩니다. 소비자가 제거되면 소비자가 없는 경우에도 대기열에서 메시지를 계속 수신합니다.

프로세스

  1. 클러스터의 한 브로커에 로컬 처리기를 구성합니다.

    고가용성을 사용하는 경우 마스터 브로커여야 합니다.

    1. 브로커의 < broker_instance_dir> /etc/broker.xml 구성 파일을 엽니다.
    2. < core&gt; 요소 내에서 로컬 처리기를 추가합니다.

      로컬 처리기는 원격 처리기의 중재자 역할을 합니다. 라우팅 정보를 저장하고 다른 브로커와 통신합니다.

      <configuration>
          <core>
              ...
              <grouping-handler name="my-grouping-handler">
                  <type>LOCAL</type>
                  <timeout>10000</timeout>
              </grouping-handler>
              ...
          </core>
      </configuration>
      grouping-handler
      name 속성을 사용하여 그룹화 처리기의 고유한 이름을 지정합니다.
      type
      이를 LOCAL 로 설정합니다.
      timeout

      메시지를 라우팅할 위치에 대한 결정을 내릴 때까지 대기하는 시간(밀리초)입니다. 기본값은 5000밀리초입니다. 라우팅 결정이 이루어지기 전에 시간 초과에 도달하면 예외가 발생하여 엄격한 메시지 순서가 보장됩니다.

      브로커가 그룹 ID가 있는 메시지를 수신하면 소비자가 연결된 큐의 경로를 제안합니다. 클러스터의 다른 브로커에서 경로를 그룹화하여 경로를 수락하면 경로가 설정됩니다. 클러스터의 모든 브로커는 이 그룹 ID가 있는 메시지를 해당 큐로 전달합니다. 브로커의 경로 제안이 거부되면 경로가 수락될 때까지 프로세스를 반복하여 대체 경로를 제안합니다.

  2. 고가용성을 사용하는 경우 로컬 처리기 구성을 마스터 브로커의 슬레이브 브로커에 복사합니다.

    로컬 처리기 구성을 슬레이브 브로커에 복사하면 로컬 처리기의 단일 장애 지점을 방지할 수 있습니다.

  3. 클러스터의 나머지 각 브로커에서 원격 처리기를 구성합니다.

    1. 브로커의 < broker_instance_dir> /etc/broker.xml 구성 파일을 엽니다.
    2. < core&gt; 요소 내에서 원격 처리기를 추가합니다.

      <configuration>
          <core>
              ...
              <grouping-handler name="my-grouping-handler">
                  <type>REMOTE</type>
                  <timeout>5000</timeout>
              </grouping-handler>
              ...
          </core>
      </configuration>
      grouping-handler
      name 속성을 사용하여 그룹화 처리기의 고유한 이름을 지정합니다.
      type
      이를 REMOTE 로 설정합니다.
      timeout
      메시지를 라우팅할 위치에 대한 결정을 내릴 때까지 대기하는 시간(밀리초)입니다. 기본값은 5000밀리초입니다. 이 값을 로컬 처리기 값의 절반 이상으로 설정합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.