4.9. AMQP 메시지에 대한 대규모 메시지 처리 구성
클라이언트는 브로커의 내부 버퍼 크기를 초과할 수 있는 대용량 AMQP 메시지를 보내 예기치 않은 오류가 발생할 수 있습니다. 이 상황을 방지하려면 메시지가 지정된 최소 값보다 클 때 메시지를 파일로 저장하도록 브로커를 구성할 수 있습니다. 이러한 방식으로 대용량 메시지를 처리한다는 것은 브로커가 메모리에 메시지를 보관하지 않음을 의미합니다. 대신 브로커는 대규모 메시지 파일을 저장하는 데 사용되는 전용 디렉터리에 메시지를 저장합니다.
OpenShift Container Platform에서 브로커 배포의 경우 큰 messages 디렉터리는 메시지 스토리지를 위해 브로커가 사용하는 PV(영구 볼륨)의 /opt/ <custom_resource_name> /data/large-
knative입니다. 브로커가 메시지를 큰 메시지로 저장하면 큐는 큰 메시지 디렉터리에 파일에 대한 참조를 유지합니다.
AMQ Broker 7.10의 Operator 기반 브로커 배포의 경우 AMQP 프로토콜에서만 대규모 메시지 처리를 사용할 수 있습니다.
4.9.1. 대규모 메시지 처리를 위한 AMQP 어셉터 구성
다음 절차에서는 지정된 크기보다 큰 AMQP 메시지를 대규모 메시지로 처리하도록 어셉터를 구성하는 방법을 보여줍니다.
사전 요구 사항
- Operator 기반 브로커 배포에 대한 수락자를 구성하는 방법에 대해 잘 알고 있어야 합니다. 4.8.1절. “수락자 구성”을 참조하십시오.
대규모 AMQP 메시지를 전용 대규모 메시지 디렉터리에 저장하려면 브로커 배포가 영구 스토리지를 사용해야 합니다(즉, 배포를 생성하는 데 사용되는 CR(사용자 정의 리소스) 인스턴스에서
persistenceEnabled
가true
로 설정됨). 영구 스토리지 구성에 대한 자세한 내용은 다음을 참조하십시오.
절차
이전에 AMQP 어셉터를 정의한 CR(사용자 정의 리소스) 인스턴스를 엽니다.
OpenShift 명령줄 인터페이스 사용:
$ oc edit -f <path/to/custom_resource_instance>.yaml
OpenShift Container Platform 웹 콘솔 사용:
-
왼쪽 탐색 메뉴에서
를 클릭합니다. -
ActiveMQArtemis
CRD를 클릭합니다. -
Instances
탭을 클릭합니다. - 프로젝트 네임스페이스에 해당하는 CR 인스턴스를 찾습니다.
-
왼쪽 탐색 메뉴에서
이전에 구성된 AMQP 어셉터는 다음과 유사할 수 있습니다.
spec: ... acceptors: - name: my-acceptor protocols: amqp port: 5672 connectionsAllowed: 5 expose: true sslEnabled: true ...
브로커가 큰 메시지로 처리하는 AMQP 메시지의 최소 크기를 바이트 단위로 지정합니다. 예를 들면 다음과 같습니다.
spec: ... acceptors: - name: my-acceptor protocols: amqp port: 5672 connectionsAllowed: 5 expose: true sslEnabled: true amqpMinLargeMessageSize: 204800 ... ...
이전 예에서 브로커는 포트 5672에서 AMQP 메시지를 수락하도록 구성됩니다.
amqpMinLargeMessageSize
값에 따라 acceptor에서 204800바이트보다 크거나 같은 본문이 있는 AMQP 메시지를 수신하는 경우 브로커는 메시지를 큰 메시지로 저장합니다.브로커는 메시지 스토리지를 위해 브로커가 사용하는 PV(영구 볼륨)의 큰 메시지 디렉터리(
/opt/ <custom_resource_name> /data/large-
ECDHE )에 메시지를 저장합니다.amqpMinLargeMessageSize
속성 값을 명시적으로 지정하지 않으면 브로커는 기본값 102400(즉, 100 킬로바이트)을 사용합니다.amqpMinLargeMessageSize
를-1
로 설정하면 AMQP 메시지에 대한 큰 메시지 처리가 비활성화됩니다.