7.3. 메시지 차단 구성
다음 절차에서는 지정된 주소가 지정한 최대 크기 제한에 도달하면 메시지 차단을 구성하는 방법을 보여줍니다.
Core, OpenWire 및 AMQP 프로토콜에 만 대한 메시지 차단을 구성할 수 있습니다.
7.3.1. Core 및 OpenWire 생산자 차단
다음 절차에서는 지정된 주소가 지정한 최대 크기 제한에 도달하면 Core 및 OpenWire 메시지 생산자에 대한 메시지 차단을 구성하는 방법을 보여줍니다.
사전 요구 사항
- 주소 및 주소 설정을 구성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 4장. 주소 및 큐 구성의 내용을 참조하십시오.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 일치하는 주소 또는 주소 집합에 대해 구성한
address-setting
요소의 경우 구성 요소를 추가하여 메시지 차단 동작을 정의합니다. 예를 들면 다음과 같습니다.<address-settings> <address-setting match="my.blocking.address"> ... <max-size-bytes>300000</max-size-bytes> <address-full-policy>BLOCK</address-full-policy> ... </address-setting> </address-settings>
max-size-bytes
브로커가
address-full-policy
에 지정된 정책을 실행하기 전에 주소에 허용되는 메모리의 최대 크기(바이트)입니다. 지정한 값은 "K", "MB" 및 "GB"와 같은 바이트 표기법도 지원합니다.참고address-setting
요소에max-size-bytes
를 지정하는 경우 값은 일치하는 각 주소에 적용됩니다. 이 값을 지정하면 일치하는 모든 주소의 총 크기가max-size-bytes
값으로 제한되는 것은 아닙니다.address-full-policy
- 그러면 주소의 최대 크기에 도달할 때 브로커가 수행하는 작업입니다.
이전 예에서
my.blocking.address
주소로 전송된 메시지가 메모리의 300000 바이트를 초과하면 브로커는 Core 또는 OpenWire 메시지 생산자의 추가 메시지를 차단하기 시작합니다.
7.3.2. AMQP 생산자 차단
Core 및 OpenWire와 같은 프로토콜은 창 크기 흐름 제어 시스템을 사용합니다. 이 시스템에서 크레딧은 바이트를 나타내며 생산자에게 할당됩니다. 생산자가 메시지를 보내려는 경우 생산자는 메시지 크기에 충분한 크레딧이 있을 때까지 기다려야 합니다.
반면 AMQP 흐름 제어 크레딧은 바이트를 나타내지 않습니다. 대신 AMQP 크레딧은 메시지 크기와 관계없이 생산자가 보낼 수 있는 메시지 수를 나타냅니다. 따라서 AMQP 생산자가 주소의 max-size-bytes
값을 훨씬 초과할 수 있는 경우도 있습니다.
따라서 AMQP 생산자를 차단하려면 다른 구성 요소 max-size-bytes-reject-threshold
를 사용해야 합니다. 일치하는 주소 또는 주소 집합의 경우 이 요소는 메모리에 있는 모든 AMQP 메시지의 최대 크기(바이트)를 지정합니다. 메모리에 있는 모든 메시지의 총 크기가 지정된 제한에 도달하면 브로커는 AMQP 생산자가 추가 메시지를 전송하지 못하도록 차단합니다.
다음 절차에서는 AMQP 메시지 생산자에 대한 메시지 차단을 구성하는 방법을 보여줍니다.
사전 요구 사항
- 주소 및 주소 설정을 구성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 4장. 주소 및 큐 구성의 내용을 참조하십시오.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 일치하는 주소 또는 주소 집합에 대해 구성한
address-setting
요소의 경우 메모리에 있는 모든 AMQP 메시지의 최대 크기를 지정합니다. 예를 들면 다음과 같습니다.<address-settings> <address-setting match="my.amqp.blocking.address"> ... <max-size-bytes-reject-threshold>300000</max-size-bytes-reject-threshold> ... </address-setting> </address-settings>
max-size-bytes-reject-threshold
브로커가 추가 AMQP 메시지를 차단하기 전에 주소에 허용되는 메모리의 최대 크기(바이트)입니다. 지정한 값은 "K", "MB" 및 "GB"와 같은 바이트 표기법도 지원합니다. 기본적으로
max-size-bytes-reject-threshold
는-1
로 설정되어 최대 크기가 없음을 의미합니다.참고address-setting
요소에max-size-bytes-reject-threshold
를 지정하면 일치하는 각 주소에 값이 적용됩니다. 이 값을 지정하면 일치하는 모든 주소의 총 크기가max-size-bytes-reject-threshold
로 제한되는 것은 아닙니다.
이전 예에서 my.amqp.blocking.address
주소로 전송된 메시지가 메모리에서 300000바이트를 초과하면 브로커는 AMQP 생산자의 추가 메시지를 차단하기 시작합니다.