7.3. 메시지 차단 구성
다음 절차에서는 지정된 주소가 지정된 최대 크기 제한에 도달하면 메시지 차단을 구성하는 방법을 보여줍니다.
Core, OpenECDHEre 및 AMQP 프로토콜에 만 메시지 차단을 구성할 수 있습니다.
7.3.1. Blocking Core 및 OpenECDHEre 생산자
다음 절차에서는 지정된 주소가 지정한 최대 크기 제한에 도달하면 Core 및 OpenECDHEre 메시지 생산자에 대한 메시지 차단을 구성하는 방법을 보여줍니다.
사전 요구 사항
- 주소 및 주소 설정을 구성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 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"와 같은 바이트 표기법도 지원합니다.참고max-size-bytes
를address-setting
요소에서 지정하는 경우 해당 값은 일치하는 각 주소에 적용됩니다. 이 값을 지정하면 일치하는 모든 주소의 총 크기가max-size-bytes
값으로 제한되는 것은 아닙니다.address-full-policy
- 브로커가 주소의 최대 크기에 도달했을 때 걸리는 작업입니다.
이전 예에서
my.blocking.address
주소로 전송된 메시지가 메모리에서 300000 바이트를 초과하면 브로커는 Core 또는 OpenECDHEre 메시지 생산자의 추가 메시지를 차단하기 시작합니다.
7.3.2. AMQP 생산자 차단
Core 및 Open>-<re와 같은 프로토콜은 창 크기 흐름 제어 시스템을 사용합니다. 이 시스템에서 단위는 바이트를 나타내며 생산자에 할당됩니다. 프로듀서가 메시지를 보내려는 경우 생산자는 메시지 크기에 충분한 단위가 있을 때까지 기다려야 합니다.
반면 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 생산자의 추가 메시지를 차단하기 시작합니다.