8장. 대용량 메시지 처리


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

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

코어 프로토콜, AMQP, OpenWire 및 STOMP 프로토콜에 대규모 메시지 처리를 사용할 수 있습니다.

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

참고

대용량 메시지를 생성하고 사용하는 데 다른 프로토콜을 사용하지 않는 것이 좋습니다. 이렇게 하려면 브로커가 메시지의 여러 변환을 수행해야 할 수 있습니다. 예를 들어 AMQP 프로토콜을 사용하여 메시지를 보내고 OpenWire를 사용하여 수신하려는 경우를 예로 들 수 있습니다. 이러한 상황에서 브로커는 먼저 큰 메시지의 전체 본문을 읽고 Core 프로토콜을 사용하도록 변환해야합니다. 그런 다음 브로커는 OpenWire 프로토콜로 다른 변환을 수행해야합니다. 이와 같은 메시지 변환으로 인해 브로커에 상당한 처리 오버헤드가 발생합니다.

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

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

  • 대규모 메시지를 저장하도록 브로커 구성
  • 대용량 메시지 처리를 위해 AMQP 및 STOMP 프로토콜에 대한 어셉터 구성

이 섹션에서는 대규모 메시지로 작동하도록 AMQ Core Protocol 및 AMQ OpenWire JMS 클라이언트 구성에 대한 추가 리소스에도 연결됩니다.

8.1. 대규모 메시지 처리를 위해 브로커 구성

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

프로세스

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

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

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

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

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

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

      Large -message-table 의 값을 명시적으로 지정하지 않으면 브로커는 기본값 LARGE_MESSAGE_ Cryostat를 사용합니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.