16.2. 브로커 미러링 구성


브로커 연결을 사용하여 한 쌍의 브로커 간에 메시지를 미러링할 수 있습니다. 브로커는 언제든지 하나만 활성화할 수 있습니다.

사전 요구 사항

  • 작업 브로커가 두 개 있습니다.

프로세스

  1. 첫 번째 브로커의 broker.xml 파일에 broker-connections 요소를 생성합니다. 예를 들면 다음과 같습니다.

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC1">
        <mirror/>
      </amqp-connection>
    </broker-connections>
    <hostname>
    다른 브로커 인스턴스의 호스트 이름입니다.
    <port>
    다른 호스트의 브로커가 사용하는 포트입니다.

    첫 번째 브로커의 모든 메시지는 두 번째 브로커에 미러링되지만 미러가 생성되기 전에 존재하는 메시지는 미러링되지 않습니다.

  2. 첫 번째 브로커가 재해 복구에 대해 미러링된 브로커가 최신 상태임을 확인하기 위해 다음 예와 같이 첫 번째 브로커가 메시지를 동기적으로 미러링하려면 브로커의 amqp-connection 요소에 sync=true 속성을 설정합니다.

    동기 미러링을 수행하려면 브로커가 미러링된 브로커로 전송한 메시지를 두 브로커의 볼륨에 동시에 기록해야 합니다. 두 브로커 모두에서 쓰기 작업이 완료되면 소스 브로커는 쓰기 요청이 완료되고 제어가 클라이언트에 반환됨을 확인합니다.

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true"/>
      </amqp-connection>
    </broker-connections>
    참고

    예를 들어 브로커를 사용할 수 없는 경우와 같이 미러링된 브로커에서 쓰기 요청을 완료할 수 없는 경우 최신 쓰기 요청을 완료하기 위해 미러를 사용할 수 있을 때까지 클라이언트 연결이 차단됩니다.

    참고

    예제의 브로커 연결 이름은 $ACTIVEMQ_ARTEMIS_MIRROR_mirror 라는 큐를 생성하는 데 사용됩니다. 큐가 해당 브로커에 표시되지 않더라도 해당 브로커가 해당 메시지를 수락하도록 구성되어 있는지 확인합니다.

  3. 두 번째 브로커의 broker.xml 파일에 broker-connections 요소를 생성합니다. 예를 들면 다음과 같습니다.

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror/>
      </amqp-connection>
    </broker-connections>
  4. 두 번째 브로커가 메시지를 동기적으로 미러링하려면 브로커의 amqp-connection 요소에서 sync=true 속성을 설정합니다. 예를 들면 다음과 같습니다.

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true"/>
      </amqp-connection>
    </broker-connections>
  5. (선택 사항) 필요에 따라 미러에 대해 다음 매개변수를 구성합니다.

    queue-removal
    큐 또는 주소 제거 이벤트가 전송되는지 여부를 지정합니다. 기본값은 true입니다.
    메시지 확인
    메시지 승인이 전송되는지 여부를 지정합니다. 기본값은 true입니다.
    queue-creation
    큐 또는 주소 생성 이벤트가 전송되는지 여부를 지정합니다. 기본값은 true입니다.

    예를 들면 다음과 같습니다.

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true" queue-removal="false" message-acknowledgments ="false" queue-creation="false"/>
      </amqp-connection>
    </broker-connections>
  6. (선택 사항) 브로커 재시도 시도를 대상 미러의 메시지 승인 시도를 사용자 지정합니다.

    큐 메모리에 없는 메시지의 대상 미러에서 승인이 수신될 수 있습니다. 브로커에게 대상 미러에서 메시지를 승인할 충분한 시간을 제공하기 위해 환경에 대해 다음 매개변수를 사용자 지정할 수 있습니다.

    mirrorAckManagerQueueAttempts
    브로커가 메모리에서 메시지를 찾는 시도 횟수입니다. 기본값은 5 입니다. 지정된 횟수의 시도 후 브로커가 메모리에 있는 메시지를 찾지 못하면 브로커는 페이지 파일에서 메시지를 검색합니다.
    mirrorAckManagerPageAttempts
    메모리에서 메시지를 찾을 수 없는 경우 브로커가 페이지 파일에서 메시지를 찾는 시도 횟수입니다. 기본값은 2입니다.
    mirrorAckManagerRetryDelay
    브로커가 메모리에서 승인할 메시지를 찾은 다음 페이지 파일에서 시도하는 간격(밀리초)입니다.

    broker-connections 요소 외부에서 이러한 매개변수 중 하나를 지정합니다. 예를 들면 다음과 같습니다.

    <mirrorAckManagerQueueAttempts>8</mirrorAckManagerQueueAttempts>
    
    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror/>
      </amqp-connection>
    </broker-connections>
  7. (선택 사항) 메시지가 대상 미러에서 호출되는 경우 브로커가 메시지 파일에 메시지를 작성하여 중복 탐지 정보 쓰기를 조정하려면 mirrorPageTransactiontrue 로 설정합니다.

    mirrorPageTransaction 속성이 기본값인 false 로 설정되고 브로커 간에 통신 오류가 발생하면 드문 경우 대상 미러에 중복 메시지를 쓸 수 있습니다.

    이 매개변수를 true 로 설정하면 브로커의 메모리 사용량이 증가합니다.

  8. 15.6절. “다중 사이트 내결함성 메시징 시스템에서 클라이언트 구성” 에 설명된 지침을 사용하여 브로커 연결과 함께 이를 통해 공유 스토리지가 없습니다.
중요

Red Hat은 미러 구성에서 두 브로커의 메시지를 사용하는 클라이언트 애플리케이션을 지원하지 않습니다. 클라이언트가 두 브로커 모두에서 메시지를 사용하지 않도록 하려면 브로커 중 하나에서 클라이언트 수락을 비활성화합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.