4.19. 소급 주소 구성

주소를 급성으로 구성하면 주소에 아직 바인딩된 대기열이 없는 경우를 포함하여 해당 주소로 전송된 메시지를 보존할 수 있습니다. 나중에 대기열이 생성되고 주소에 바인딩되면 브로커는 메시지를 해당 큐에 소급적으로 배포합니다. 주소가 소급성으로 구성되지 않고 아직 큐가 바인딩되지 않은 경우 브로커는 해당 주소로 전송된 메시지를 삭제합니다.

소급 주소를 구성하면 브로커는 큐로 알려진 큐 유형의 내부 인스턴스를 생성합니다. 링 큐는 지정된 고정된 수의 메시지를 보유하는 특수 유형의 큐입니다. 큐가 지정된 크기에 도달하면 큐에 도달하는 다음 메시지는 대기열에서 가장 오래된 메시지를 강제 적용합니다. 소급 주소를 구성하면 내부 링 큐의 크기를 간접적으로 지정합니다. 기본적으로 내부 대기열은 멀티 캐스트 라우팅 유형을 사용합니다.

소급 주소에 사용되는 내부 링 큐는 관리 API를 통해 노출됩니다. 메트릭을 검사하고 큐 비우기와 같은 기타 일반적인 관리 작업을 수행할 수 있습니다. 링 큐는 또한 주소의 전체 메모리 사용량에 영향을 주므로 메시지 페이징과 같은 동작에 영향을 미칩니다.

다음 절차에서는 주소를 소급성으로 구성하는 방법을 보여줍니다.

절차

  1. < broker-instance-dir> /etc/broker.xml 구성 파일을 엽니다.
  2. address-setting 요소에서 retroactive-message-count 매개변수 값을 지정합니다. 지정하는 값은 브로커가 보존할 메시지 수를 정의합니다. 예를 들면 다음과 같습니다.

    <configuration>
      <core>
        ...
        <address-settings>
           <address-setting match="orders">
              <retroactive-message-count>100</retroactive-message-count>
           </address-setting>
        </address-settings>
    ...
      </core>
    </configuration>
    참고

    broker.xml 구성 파일 또는 관리 API에서 브로커가 실행되는 동안 retroactive-message-count 값을 업데이트할 수 있습니다. 그러나 이 매개변수의 값 을 줄이 는 경우 링 큐를 통해 소급성 주소가 구현되기 때문에 추가 단계가 필요합니다. ring-size 매개변수가 감소하는 링 큐는 새 ring-size 값을 달성하기 위해 큐에서 메시지를 자동으로 삭제하지 않습니다. 이 동작은 의도하지 않은 메시지 손실에 대한 보호입니다. 이 경우 관리 API를 사용하여 링 대기열의 메시지 수를 수동으로 줄여야 합니다.

추가 리소스