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 생산자의 추가 메시지를 차단하기 시작합니다.