4.21.5. 업스트림 주소 연합 구성


다음 예제에서는 독립 실행형 브로커 간에 업스트림 주소 페더레이션을 구성하는 방법을 보여줍니다. 이 예제에서는 로컬 (즉, 다운스트림 ) 브로커에서 일부 원격 (즉, 업스트림) 브로커에 대한 페더레이션을 구성합니다.

사전 요구 사항

  • 다음 예제에서는 독립 실행형 브로커 간에 주소 페더레이션을 구성하는 방법을 보여줍니다. 그러나 브로커 클러스터에 대한 페더레이션 구성 요구 사항도 잘 알고 있어야 합니다. 자세한 내용은 4.21.4절. “브로커 클러스터에 대한 페더레이션 구성”의 내용을 참조하십시오.

절차

  1. < broker-instance-dir> /etc/broker.xml 구성 파일을 엽니다.
  2. < feder ation> 요소를 포함하는 새 <federations > 요소를 추가합니다. 예를 들면 다음과 같습니다.

    <federations>
      <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9">
      </federation>
    </federations>
    Copy to Clipboard Toggle word wrap
    name
    페더레이션 구성의 이름입니다. 이 예에서 name은 로컬 브로커의 이름에 해당합니다.
    user
    업스트림 브로커에 연결하기 위한 공유 사용자 이름입니다.
    암호
    업스트림 브로커와의 연결에 대한 공유 암호입니다.
    참고

    원격 브로커에 대해 사용자 및 암호 자격 증명이 다른 경우 구성에 추가할 때 해당 브로커의 인증 정보를 별도로 지정할 수 있습니다. 이 내용은 이 절차의 뒷부분에서 설명합니다.

  3. 페더레이션 요소 내에서 &lt; address-policy&gt; 요소를 추가합니다. 예를 들면 다음과 같습니다.

    <federations>
        <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9">
    
            <address-policy name="news-address-federation" auto-delete="true" auto-delete-delay="300000" auto-delete-message-count="-1" enable-divert-bindings="false" max-hops="1" transformer-ref="news-transformer">
            </address-policy>
    
        </federation>
    </federations>
    Copy to Clipboard Toggle word wrap
    name
    주소 정책의 이름입니다. 브로커에 구성된 모든 주소 정책에는 고유한 이름이 있어야 합니다.
    자동 삭제
    주소 페더레이션 중에 로컬 브로커는 동적으로 원격 주소에 영구 큐를 생성합니다. auto-delete 속성의 값은 로컬 브로커의 연결이 끊어지면 원격 큐와 auto-delete- delay 및 auto-delete -message-count 속성에도 도달했는지 여부를 지정합니다. 동적으로 생성된 큐의 정리를 자동화하려는 경우 이 옵션이 유용합니다. 또한 로컬 브로커의 연결이 끊어진 경우 원격 브로커에서 메시지를 빌드하지 않으려는 경우에도 유용합니다. 그러나 연결이 끊긴 동안 메시지가 항상 로컬 브로커에 대해 큐에 남아 있도록 하려면 이 옵션을 false 로 설정하여 로컬 브로커에서 메시지 손실을 방지할 수 있습니다.
    auto-delete-delay
    로컬 브로커의 연결이 끊어진 후 이 속성의 값은 동적으로 생성된 원격 큐를 자동으로 삭제하기 전에 시간(밀리초)을 지정합니다.
    auto-delete-message-count
    로컬 브로커의 연결이 끊어진 후 이 속성의 값은 큐를 자동으로 삭제할 수 있기 전에 동적으로 생성된 원격 큐에 있을 수 있는 최대 메시지 수를 지정합니다.
    enable-divert-bindings
    이 속성을 true 로 설정하면 개별 바인딩이 요청에 대해 수신 대기됩니다. 주소 정책의 포함된 주소와 일치하는 주소가 포함된 다양한 바인딩이 있는 경우, 요약의 전달 주소와 일치하는 큐 바인딩은 수요가 생성됩니다. 기본값은 false입니다.
    max-hops
    페더레이션 중에 메시지를 만들 수 있는 최대 홉 수입니다. 특정 토폴로지에는 이 속성에 대한 특정 값이 필요합니다. 이러한 요구 사항에 대한 자세한 내용은 4.21.2절. “주소 연합을 위한 공통 토폴로지” 을 참조하십시오.
    transformer-ref
    변환기 구성의 이름입니다. 연합 메시지 전송 중에 메시지를 변환하려면 변환기 구성을 추가할 수 있습니다. Transformer 구성은 이 절차의 뒷부분에서 설명합니다.
  4. < address-policy > 요소 내에서 주소 정책에서 주소를 포함 및 제외하는 address-matching 패턴을 추가합니다. 예를 들면 다음과 같습니다.

    <federations>
        <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9">
    
            <address-policy name="news-address-federation" auto-delete="true" auto-delete-delay="300000" auto-delete-message-count="-1" enable-divert-bindings="false" max-hops="1" transformer-ref="news-transformer">
    
                <include address-match="queue.bbc.new" />
                <include address-match="queue.usatoday" />
                <include address-match="queue.news.#" />
    
                <exclude address-match="queue.news.sport.#" />
            </address-policy>
    
        </federation>
    </federations>
    Copy to Clipboard Toggle word wrap
    include
    이 요소의 address-match 속성 값은 주소 정책에 포함할 주소를 지정합니다. 정확한 주소(예: queue.bbc.new 또는 queue.usatoday )를 지정할 수 있습니다. 또는 와일드카드 식을 사용하여 일치하는 주소 집합 을 지정할 수 있습니다. 이전 예에서 address 정책에는 문자열 queue.news 로 시작하는 모든 주소 이름도 포함되어 있습니다.
    exclude
    이 요소의 address-match 속성 값은 주소 정책에서 제외할 주소를 지정합니다. 정확한 주소 이름을 지정하거나 와일드카드 식을 사용하여 일치하는 주소 집합 을 지정할 수 있습니다. 이전 예에서 address 정책은 string queue.news.sport 로 시작하는 모든 주소 이름을 제외합니다.
  5. (선택 사항) 페더레이션 요소에서 사용자 지정 변환기 구현을 참조하는 변환기 요소를 추가합니다. 예를 들면 다음과 같습니다.

    <federations>
        <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9">
    
            <address-policy name="news-address-federation" auto-delete="true" auto-delete-delay="300000" auto-delete-message-count="-1" enable-divert-bindings="false" max-hops="1" transformer-ref="news-transformer">
    
                <include address-match="queue.bbc.new" />
                <include address-match="queue.usatoday" />
                <include address-match="queue.news.#" />
    
                <exclude address-match="queue.news.sport.#" />
            </address-policy>
    
            <transformer name="news-transformer">
                <class-name>org.foo.NewsTransformer</class-name>
                <property key="key1" value="value1"/>
                <property key="key2" value="value2"/>
            </transformer>
    
        </federation>
    </federations>
    Copy to Clipboard Toggle word wrap
    name
    변환기 구성의 이름입니다. 이 이름은 로컬 브로커에서 고유해야 합니다. 이는 주소 정책의 transformer-ref 속성에 대한 값으로 지정하는 이름입니다.
    class-name

    org.apache.activemq.artemis.core.server.transformer.Transformer 인터페이스를 구현하는 사용자 정의 클래스의 이름입니다.

    transformer의 transform() 메서드는 메시지를 전송하기 전에 메시지와 함께 호출됩니다. 이를 통해 메시지 헤더 또는 본문이 통합되기 전에 변환할 수 있습니다.

    속성
    특정 변환기 구성에 대해 키-값 쌍을 유지하는 데 사용됩니다.
  6. 페더레이션 요소 내에서 하나 이상의 업스트림 요소를 추가합니다. 각 업스트림 요소는 원격 브로커와 해당 연결에 적용할 정책을 정의합니다. 예를 들면 다음과 같습니다.

    <federations>
        <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9">
    
            <upstream name="eu-east-1">
                <static-connectors>
                    <connector-ref>eu-east-connector1</connector-ref>
                </static-connectors>
                <policy ref="news-address-federation"/>
            </upstream>
    
            <upstream name="eu-west-1" >
                <static-connectors>
                    <connector-ref>eu-west-connector1</connector-ref>
                </static-connectors>
                <policy ref="news-address-federation"/>
            </upstream>
    
            <address-policy name="news-address-federation" auto-delete="true" auto-delete-delay="300000" auto-delete-message-count="-1" enable-divert-bindings="false" max-hops="1" transformer-ref="news-transformer">
    
                <include address-match="queue.bbc.new" />
                <include address-match="queue.usatoday" />
                <include address-match="queue.news.#" />
    
                <exclude address-match="queue.news.sport.#" />
            </address-policy>
    
            <transformer name="news-transformer">
                <class-name>org.foo.NewsTransformer</class-name>
                <property key="key1" value="value1"/>
                <property key="key2" value="value2"/>
            </transformer>
    
        </federation>
    </federations>
    Copy to Clipboard Toggle word wrap
    static-connectors
    로컬 브로커의 broker.xml 구성 파일에서 정의된 커넥터 요소를 참조하는 connector -ref 요소 목록이 포함되어 있습니다. 커넥터는 발신 연결에 사용할 전송(TCP, SSL, HTTP 등) 및 서버 연결 매개 변수(host, port 등)를 정의합니다. 이 절차의 다음 단계에서는 static-connectors 요소에서 참조되는 커넥터를 추가하는 방법을 보여줍니다.
    policy-ref
    업스트림 브로커에 적용되는 다운스트림 브로커에 구성된 주소 정책의 이름입니다.

    업스트림 요소에 대해 지정할 수 있는 추가 옵션은 아래에 설명되어 있습니다.

    name
    업스트림 브로커 구성의 이름입니다. 이 예에서 이름은 eu-east-1eu-west-1 이라는 업스트림 브로커에 해당합니다.
    user
    업스트림 브로커에 대한 연결을 생성할 때 사용할 사용자 이름입니다. 지정하지 않으면 페더레이션 요소의 구성에 지정된 공유 사용자 이름이 사용됩니다.
    암호
    업스트림 브로커에 대한 연결을 생성할 때 사용할 암호입니다. 지정하지 않으면 페더레이션 요소의 구성에 지정된 공유 암호가 사용됩니다.
    call-failover-timeout
    call-timeout 과 유사하지만 장애 조치(failover) 시도 중에 호출이 수행됩니다. 기본값은 -1 이며, 이는 시간 초과가 비활성화됨을 의미합니다.
    call-timeout
    페더레이션 연결은 차단 호출인 패킷을 전송할 때 원격 브로커의 응답을 대기하는 시간(밀리초)입니다. 이 시간이 경과하면 연결에서 예외가 발생합니다. 기본값은 30000 입니다.
    check-period
    로컬 브로커가 원격 브로커로 보내는 연속 "보통" 메시지 사이의 기간(밀리초)은 페더레이션 연결의 상태를 확인합니다. 페더레이션 연결이 정상이면 원격 브로커는 각 keep-alive 메시지에 응답합니다. 연결이 비정상인 경우 다운스트림 브로커가 업스트림 브로커에서 응답을 수신하지 못하면 회로 차단기 라는 메커니즘을 사용하여 페더레이션 소비자를 차단합니다. 자세한 내용은 circuit-breaker-timeout 매개변수에 대한 설명을 참조하십시오. check-period 매개변수의 기본값은 30000 입니다.
    circuit-breaker-timeout
    다운스트림과 업스트림 브로커 간의 단일 연결은 많은 연합 큐와 주소 소비자에 의해 공유될 수 있습니다. 브로커 간의 연결이 손실되는 경우 각 연합 소비자는 동시에 다시 연결을 시도할 수 있습니다. 이를 방지하기 위해 회로 차단기 라는 메커니즘은 소비자를 차단합니다. 지정된 시간 초과 값이 경과하면 회로 차단기가 연결을 다시 만듭니다. 성공하면 소비자는 차단 해제됩니다. 그렇지 않으면 회로 차단기가 다시 적용됩니다.
    connection-ttl
    원격 브로커에서 메시지 수신을 중지하면 페더레이션 연결이 활성 상태로 유지됩니다. 기본값은 60000 입니다.
    discovery-group-ref
    업스트림 브로커에 대한 연결에 대한 정적 커넥터를 정의하는 대신 이 요소를 사용하여 broker.xml 구성 파일의 다른 곳에서 이미 구성된 검색 그룹을 지정할 수 있습니다. 특히 이 요소의 discovery-group-name 속성에 대한 값으로 기존 검색 그룹을 지정합니다. 검색 그룹에 대한 자세한 내용은 16.1.5절. “브로커 검색 방법” 을 참조하십시오.
    ha
    업스트림 브로커 연결에 대해 고가용성을 활성화할지 여부를 지정합니다. 이 매개변수의 값이 true 로 설정된 경우 로컬 브로커는 업스트림 클러스터에서 사용 가능한 모든 브로커에 연결할 수 있으며 라이브 업스트림 브로커가 종료되면 백업 브로커로 자동으로 실패합니다. 기본값은 false입니다.
    initial-connect-attempts
    다운스트림 브로커가 업스트림 브로커에 연결하려고 하는 초기 시도 수입니다. 연결이 설정되지 않은 경우 업스트림 브로커는 영구적으로 오프라인 상태로 간주됩니다. 다운스트림 브로커는 더 이상 메시지를 업스트림 브로커로 라우팅하지 않습니다. 기본값은 -1 이며 이는 제한이 없음을 의미합니다.
    max-retry-interval
    원격 브로커에 연결할 때 후속 재시도 시도 사이의 최대 시간(밀리초)입니다. 기본값은 2000 입니다.
    reconnect-attempts
    다운스트림 브로커가 연결에 실패한 경우 업스트림 브로커에 다시 연결을 시도하는 횟수입니다. 연결을 재설정하지 않고 이 값에 도달하면 업스트림 브로커는 영구적으로 오프라인 상태로 간주됩니다. 다운스트림 브로커는 더 이상 메시지를 업스트림 브로커로 라우팅하지 않습니다. 기본값은 -1 이며 이는 제한이 없음을 의미합니다.
    retry-interval
    원격 브로커에 대한 연결이 실패한 경우 후속 재시도 시도 사이의 기간(밀리초)입니다. 기본값은 500 입니다.
    retry-interval-multiplier
    retry-interval 매개 변수의 값에 적용되는 요인을 곱합니다. 기본값은 1 입니다.
    share-connection
    동일한 브로커에 대해 다운스트림 및 업스트림 연결이 모두 구성된 경우 다운스트림 및 업스트림 구성 모두 이 매개 변수의 값을 true 로 설정하는 경우 동일한 연결이 공유됩니다. 기본값은 false입니다.
  7. 로컬 브로커에서 원격 브로커에 커넥터를 추가합니다. 이는 연합 주소 구성의 정적 연결 요소에서 참조되는 커넥터 입니다. 예를 들면 다음과 같습니다.

    <connectors>
       <connector name="eu-west-1-connector">tcp://localhost:61616</connector>
       <connector name="eu-east-1-connector">tcp://localhost:61617</connector>
    </connectors>
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat