4.20. 소급 주소 구성
주소를 소 급성으로 구성하면 주소에 아직 바인딩된 대기열이 없는 경우를 포함하여 해당 주소로 전송된 메시지를 보존할 수 있습니다. 나중에 대기열이 생성되고 주소에 바인딩되면 브로커는 메시지를 해당 큐에 소급적으로 배포합니다. 주소가 소급성으로 구성되지 않고 아직 큐가 바인딩되지 않은 경우 브로커는 해당 주소로 전송된 메시지를 삭제합니다.
소급 주소를 구성하면 브로커는 링 큐로 알려진 큐 유형의 내부 인스턴스를 생성합니다. 링 큐는 지정된 고정된 수의 메시지를 보유하는 특수 유형의 큐입니다. 큐가 지정된 크기에 도달하면 큐에 도달하는 다음 메시지는 대기열에서 가장 오래된 메시지를 강제 적용합니다. 소급 주소를 구성하면 내부 링 큐의 크기를 간접적으로 지정합니다. 기본적으로 내부 대기열은 멀티 캐스트
라우팅 유형을 사용합니다.
소급 주소에 사용되는 내부 링 큐는 관리 API를 통해 노출됩니다. 메트릭을 검사하고 큐 비우기와 같은 기타 일반적인 관리 작업을 수행할 수 있습니다. 링 큐는 또한 주소의 전체 메모리 사용량에 영향을 주므로 메시지 페이징과 같은 동작에 영향을 미칩니다.
다음 절차에서는 주소를 소급성으로 구성하는 방법을 보여줍니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 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를 사용하여 링 대기열의 메시지 수를 수동으로 줄여야 합니다.
추가 리소스
- 링 큐에 대한 자세한 내용은 4.19절. “링 큐 구성” 을 참조하십시오.