4.10. sharded 큐 구성

부분적으로만 순서가 필요한 대기열에서 메시지를 처리하는 일반적인 패턴은 큐 분할 을 사용하는 것입니다. 즉, 단일 논리 대기열 역할을 하지만 많은 기본 물리적 대기열에서 지원하는 anycast 주소를 정의합니다.

절차

  1. < broker-instance-dir> /etc/broker.xml 구성 파일을 엽니다.
  2. address 요소를 추가하고 name 속성을 설정합니다. 예를 들면 다음과 같습니다.

    <configuration ...>
      <core ...>
        ...
        <addresses>
           <address name="my.sharded.address"></address>
        </addresses>
      </core>
    </configuration>
  3. anycast 라우팅 유형을 추가하고 원하는 수의 샤드 큐를 포함합니다. 아래 예에서 q1,q2q3 대기열이 모든cast 대상으로 추가됩니다.

    <configuration ...>
      <core ...>
        ...
        <addresses>
           <address name="my.sharded.address">
              <anycast>
                 <queue name="q1" />
                 <queue name="q2" />
                 <queue name="q3" />
              </anycast>
           </address>
        </addresses>
    </core>
    </configuration>

이전 구성에 따라 my.sharded.address 로 전송된 메시지는 q1,q2q3 에 동일하게 배포됩니다. 클라이언트는 FQN(Fully Qualified Queue Name)을 사용할 때 특정 물리적 대기열에 직접 연결하고 해당 특정 대기열로만 전송된 메시지를 수신할 수 있습니다.

특정 대기열에 특정 메시지를 연결하기 위해 클라이언트는 각 메시지에 대한 메시지 그룹을 지정할 수 있습니다. 브로커는 동일한 큐로 메시지를 그룹화하고 하나의 소비자는 모두 처리합니다.

추가 리소스