8장. 대용량 메시지 처리


클라이언트는 브로커의 내부 버퍼 크기를 초과할 수 있는 대용량 메시지를 보내 예기치 않은 오류가 발생할 수 있습니다. 이 상황을 방지하려면 메시지가 지정된 최소 값보다 클 때 메시지를 파일로 저장하도록 브로커를 구성할 수 있습니다. 이러한 방식으로 대용량 메시지를 처리한다는 것은 브로커가 메모리에 메시지를 보관하지 않음을 의미합니다. 대신 디스크 또는 브로커가 대용량 메시지 파일을 저장하는 데이터베이스 테이블에 디렉터리를 지정합니다.

브로커가 메시지를 큰 메시지로 저장하면 큐는 큰 메시지 디렉터리 또는 데이터베이스 테이블에 파일에 대한 참조를 유지합니다.

Core Protocol, AMQP, Open>-<re 및 STOMP 프로토콜에 대규모 메시지 처리를 사용할 수 있습니다.

코어 프로토콜 및 Open>-<re 프로토콜의 경우 클라이언트는 연결 구성에서 최소 큰 메시지 크기를 지정합니다. AMQP 및 STOMP 프로토콜의 경우 브로커 구성의 각 프로토콜에 대해 정의된 acceptor에 최소 큰 메시지 크기를 지정합니다.

참고

대규모 메시지를 생성하고 사용하기 위해 다른 프로토콜을 사용하지 않는 것이 좋습니다. 이를 위해 브로커는 메시지의 여러 변환을 수행해야 할 수 있습니다. 예를 들어 AMQP 프로토콜을 사용하여 메시지를 보내고 Open>-<re를 사용하여 메시지를 수신하려고 한다고 가정해 보겠습니다. 이 상황에서 브로커는 먼저 큰 메시지의 전체 본문을 읽고 코어 프로토콜을 사용하도록 변환해야합니다. 그런 다음 브로커가 다른 변환을 수행해야하며, 이번에는 Open>-<re 프로토콜로 전환해야합니다. 이와 같은 메시지 변환은 브로커에서 상당한 처리 오버헤드를 유발합니다.

이전 프로토콜에 지정하는 최소 큰 메시지 크기는 사용 가능한 디스크 공간 및 메시지 크기와 같은 시스템 리소스의 영향을 받습니다. 여러 값을 사용하여 성능 테스트를 실행하여 적절한 크기를 결정하는 것이 좋습니다.

이 섹션의 절차에서는 다음을 수행하는 방법을 보여줍니다.

  • 대규모 메시지를 저장하도록 브로커 구성
  • 대규모 메시지 처리를 위해 AMQP 및 STOMP 프로토콜에 대한 수락자 구성

이 섹션에서는 대규모 메시지와 함께 작동하도록 AMQ OpenECDHEre JMS 클라이언트 구성에 대한 추가 리소스에도 연결합니다.

8.1. 대용량 메시지 처리를 위한 브로커 구성

다음 절차에서는 디스크에서 디렉터리를 지정하거나 브로커가 대용량 메시지 파일을 저장하는 데이터베이스 테이블을 지정하는 방법을 보여줍니다.

절차

  1. &lt ;broker_instance_dir&gt; /etc/broker.xml 구성 파일을 엽니다.
  2. 브로커가 대용량 메시지 파일을 저장할 위치를 지정합니다.

    1. 큰 메시지를 디스크에 저장하는 경우 core 요소 내에 large-ECDHE-directory 매개변수를 추가하고 파일 시스템 위치를 지정합니다. 예를 들면 다음과 같습니다.

      <configuration>
        <core>
          ...
          <large-messages-directory>/path/to/my-large-messages-directory</large-messages-directory>
          ...
        </core>
      </configuration>
      참고

      large-ECDHE-directory 의 값을 명시적으로 지정하지 않으면 브로커는 < broker_instance_dir> /data/large>-<의 기본값을 사용합니다.

    2. 데이터베이스 테이블에 대규모 메시지를 저장하는 경우 large-message-table 매개변수를 database-store 요소에 추가하고 값을 지정합니다. 예를 들면 다음과 같습니다.

      <store>
        <database-store>
          ...
          <large-message-table>MY_TABLE</large-message-table>
          ...
        </database-store>
      </store>
      참고

      큰 메시지 테이블 의 값을 명시적으로 지정하지 않으면 브로커는 LARGE_MESSAGE_ECDHE 의 기본값을 사용합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.