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(사용자 정의 리소스) 인스턴스에서 persistenceEnabledtrue 로 설정됨). 영구 스토리지 구성에 대한 자세한 내용은 다음을 참조하십시오.

절차

  1. 이전에 AMQP 어셉터를 정의한 CR(사용자 정의 리소스) 인스턴스를 엽니다.

    1. OpenShift 명령줄 인터페이스 사용:

      $ oc edit -f <path/to/custom_resource_instance>.yaml
    2. OpenShift Container Platform 웹 콘솔 사용:

      1. 왼쪽 탐색 메뉴에서 AdministrationCustom Resource Definitions를 클릭합니다.
      2. ActiveMQArtemis CRD를 클릭합니다.
      3. Instances 탭을 클릭합니다.
      4. 프로젝트 네임스페이스에 해당하는 CR 인스턴스를 찾습니다.

    이전에 구성된 AMQP 어셉터는 다음과 유사할 수 있습니다.

    spec:
    ...
      acceptors:
      - name: my-acceptor
        protocols: amqp
        port: 5672
        connectionsAllowed: 5
        expose: true
        sslEnabled: true
    ...
  2. 브로커가 큰 메시지로 처리하는 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 메시지에 대한 큰 메시지 처리가 비활성화됩니다.