4.12. 만료된 메시지를 만료 주소로 이동
마지막 값 대기열이 아닌 큐의 경우 브로커는 파괴적이지 않은 소비자만 있는 경우 브로커는 큐에서 메시지를 삭제하지 않으며 시간이 지남에 따라 큐 크기가 증가하게 됩니다. 대기열 크기가 제한되지 않은 이러한 증가를 방지하기 위해 메시지가 만료될 때 를 구성하고 브로커가 만료된 메시지를 이동하는 주소를 지정할 수 있습니다.
4.12.1. 메시지 만료 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 메시지 만료를 구성하는 방법을 보여줍니다.
절차
-
<
broker-instance-dir> /etc/broker.xml구성 파일을 엽니다. core요소에서message-expiry-scan-period를 설정하여 만료된 메시지에 대한 브로커 검색 빈도를 지정합니다.<configuration ...> <core ...> ... <message-expiry-scan-period>1000</message-expiry-scan-period> ...<configuration ...> <core ...> ... <message-expiry-scan-period>1000</message-expiry-scan-period> ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 구성에 따라 브로커는 1000밀리초마다 만료된 메시지의 대기열을 검사합니다.
일치하는 주소 또는 주소 세트 의
address-setting요소에서 만료 주소를 지정합니다. 또한 메시지 만료 시간을 설정합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow expiry-address-
일치하는 주소 또는 주소의 만료 주소입니다. 이전 예에서 브로커는 주식 주소에 대한 만료된 메시지를
ExpiryAddress라는 만료 주소로 보냅니다. expiry-delay브로커가 기본 만료 시간을 사용하는 메시지에 적용되는 만료 시간(밀리초)입니다. 기본적으로 메시지의 만료 시간은 0이며 만료되지 않음을 의미합니다.By default, messages have an expiration time of
0, meaning that they don't expire. 만료 시간이 기본값보다 크면 expiration-delay가 적용되지 않습니다.예를 들어 위 예에 표시된 대로 주소에서
expiry-delay를10으로 설정했다고 가정합니다. 기본 만료 시간이0인 메시지가 이 주소에서 큐에 도달하면 브로커는 메시지의 만료 시간을0에서10으로 변경합니다. 그러나20의 만료 시간을 사용하는 다른 메시지가 도착하면 만료 시간은 변경되지 않습니다. expiry-delay를-1로 설정하면 이 기능이 비활성화됩니다. 기본적으로expiry-delay는-1로 설정됩니다.
또는
expiry-delay에 값을 지정하는 대신 최소 및 최대 만료 지연 값을 지정할 수 있습니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow min-expiry-delay- 브로커가 메시지에 적용되는 최소 만료 시간(밀리초)입니다.
max-expiry-delay브로커가 메시지에 적용되는 최대 만료 시간(밀리초)입니다.
브로커는 다음과 같이
min-expiry-delay및max-expiry-delay값을 적용합니다.-
기본 만료 시간이
0인 메시지의 경우 브로커는 만료 시간을max-expiry-delay의 지정된 값으로 설정합니다.max-expiry-delay의 값을 지정하지 않은 경우 브로커는 만료 시간을min-expiry-delay로 설정합니다.min-expiry-delay에 대한 값을 지정하지 않은 경우 브로커는 메시지의 만료 시간을 변경하지 않습니다. -
max-expiry-delay보다 높은 만료 시간이 있는 메시지의 경우 브로커는 만료 시간을max-expiry-delay의 지정된 값으로 설정합니다. -
min-expiry-delay값 아래에 만료 시간이 있는 메시지의 경우 브로커는 만료 시간을min-expiry-delay로 설정합니다. -
min-expiry-delay및max-expiry-delay값 간에 만료되는 메시지의 경우 브로커는 메시지의 만료 시간을 변경하지 않습니다. -
expiry-delay(즉, 기본값-1이 아닌)의 값을 지정하면min-expiry-delay및max-expiry-delay에 지정된 모든 값이 재정의됩니다. -
min-expiry-delay및max-expiry-delay의 기본값은-1입니다(즉, 비활성화됨).
-
기본 만료 시간이
구성 파일의
addresses요소에서expiry-address에 대해 이전에 지정된 주소를 구성합니다. 이 주소에서 큐를 정의합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 앞의 예제 구성은 만료 큐인
ExpiryQueue를 만료 주소ExpiryAddress와 연결합니다.