4.21.5. 업스트림 주소 연합 구성
다음 예제에서는 독립 실행형 브로커 간에 업스트림 주소 페더레이션을 구성하는 방법을 보여줍니다. 이 예제에서는 로컬 (즉, 다운스트림 ) 브로커에서 일부 원격 (즉, 업스트림) 브로커에 대한 페더레이션을 구성합니다.
사전 요구 사항
- 다음 예제에서는 독립 실행형 브로커 간에 주소 페더레이션을 구성하는 방법을 보여줍니다. 그러나 브로커 클러스터에 대한 페더레이션 구성 요구 사항도 잘 알고 있어야 합니다. 자세한 내용은 4.21.4절. “브로커 클러스터에 대한 페더레이션 구성”의 내용을 참조하십시오.
절차
-
<
broker-instance-dir> /etc/broker.xml구성 파일을 엽니다. <
feder추가합니다. 예를 들면 다음과 같습니다.ation> 요소를 포함하는 새 <federations> 요소를<federations> <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9"> </federation> </federations>
<federations> <federation name="eu-north-1" user="federation_username" password="32a10275cf4ab4e9"> </federation> </federations>Copy to Clipboard Copied! Toggle word wrap Toggle overflow name- 페더레이션 구성의 이름입니다. 이 예에서 name은 로컬 브로커의 이름에 해당합니다.
user- 업스트림 브로커에 연결하기 위한 공유 사용자 이름입니다.
암호- 업스트림 브로커와의 연결에 대한 공유 암호입니다.
참고원격 브로커에 대해 사용자 및 암호 자격 증명이 다른 경우 구성에 추가할 때 해당 브로커의 인증 정보를 별도로 지정할 수 있습니다. 이 내용은 이 절차의 뒷부분에서 설명합니다.
페더레이션 요소 내에서
<address-policy> 요소를 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow name- 주소 정책의 이름입니다. 브로커에 구성된 모든 주소 정책에는 고유한 이름이 있어야 합니다.
자동 삭제-
주소 페더레이션 중에 로컬 브로커는 동적으로 원격 주소에 영구 큐를 생성합니다.
auto-delete속성의 값은 로컬 브로커의 연결이 끊어지면 원격 큐와 auto-delete-delay 및속성에도 도달했는지 여부를 지정합니다. 동적으로 생성된 큐의 정리를 자동화하려는 경우 이 옵션이 유용합니다. 또한 로컬 브로커의 연결이 끊어진 경우 원격 브로커에서 메시지를 빌드하지 않으려는 경우에도 유용합니다. 그러나 연결이 끊긴 동안 메시지가 항상 로컬 브로커에 대해 큐에 남아 있도록 하려면 이 옵션을auto-delete-message-countfalse로 설정하여 로컬 브로커에서 메시지 손실을 방지할 수 있습니다. auto-delete-delay- 로컬 브로커의 연결이 끊어진 후 이 속성의 값은 동적으로 생성된 원격 큐를 자동으로 삭제하기 전에 시간(밀리초)을 지정합니다.
auto-delete-message-count- 로컬 브로커의 연결이 끊어진 후 이 속성의 값은 큐를 자동으로 삭제할 수 있기 전에 동적으로 생성된 원격 큐에 있을 수 있는 최대 메시지 수를 지정합니다.
enable-divert-bindings-
이 속성을
true로 설정하면 개별 바인딩이 요청에 대해 수신 대기됩니다. 주소 정책의 포함된 주소와 일치하는 주소가 포함된 다양한 바인딩이 있는 경우, 요약의 전달 주소와 일치하는 큐 바인딩은 수요가 생성됩니다. 기본값은false입니다. max-hops- 페더레이션 중에 메시지를 만들 수 있는 최대 홉 수입니다. 특정 토폴로지에는 이 속성에 대한 특정 값이 필요합니다. 이러한 요구 사항에 대한 자세한 내용은 4.21.2절. “주소 연합을 위한 공통 토폴로지” 을 참조하십시오.
transformer-ref- 변환기 구성의 이름입니다. 연합 메시지 전송 중에 메시지를 변환하려면 변환기 구성을 추가할 수 있습니다. Transformer 구성은 이 절차의 뒷부분에서 설명합니다.
<
address-policy> 요소 내에서 주소 정책에서 주소를 포함 및 제외하는 address-matching 패턴을 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow include-
이 요소의
address-match속성 값은 주소 정책에 포함할 주소를 지정합니다. 정확한 주소(예:queue.bbc.new또는queue.usatoday)를 지정할 수 있습니다. 또는 와일드카드 식을 사용하여 일치하는 주소 집합 을 지정할 수 있습니다. 이전 예에서 address 정책에는 문자열queue.news로 시작하는 모든 주소 이름도 포함되어 있습니다. exclude-
이 요소의
address-match속성 값은 주소 정책에서 제외할 주소를 지정합니다. 정확한 주소 이름을 지정하거나 와일드카드 식을 사용하여 일치하는 주소 집합 을 지정할 수 있습니다. 이전 예에서 address 정책은 stringqueue.news.sport로 시작하는 모든 주소 이름을 제외합니다.
(선택 사항) 페더레이션 요소에서 사용자 지정
변환기구현을 참조하는 변환기 요소를 추가합니다.예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow name-
변환기 구성의 이름입니다. 이 이름은 로컬 브로커에서 고유해야 합니다. 이는 주소 정책의
transformer-ref속성에 대한 값으로 지정하는 이름입니다. class-nameorg.apache.activemq.artemis.core.server.transformer.Transformer인터페이스를 구현하는 사용자 정의 클래스의 이름입니다.transformer의
transform()메서드는 메시지를 전송하기 전에 메시지와 함께 호출됩니다. 이를 통해 메시지 헤더 또는 본문이 통합되기 전에 변환할 수 있습니다.속성- 특정 변환기 구성에 대해 키-값 쌍을 유지하는 데 사용됩니다.
페더레이션 요소
내에서 하나이상의업스트림요소를 추가합니다. 각업스트림요소는 원격 브로커와 해당 연결에 적용할 정책을 정의합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow static-connectors-
로컬 브로커의
broker.xml구성 파일에서 정의된 커넥터 요소를 참조하는요소 목록이 포함되어 있습니다. 커넥터는 발신 연결에 사용할 전송(TCP, SSL, HTTP 등) 및 서버 연결 매개 변수(host, port 등)를 정의합니다. 이 절차의 다음 단계에서는connector-refstatic-connectors요소에서 참조되는 커넥터를 추가하는 방법을 보여줍니다. policy-ref- 업스트림 브로커에 적용되는 다운스트림 브로커에 구성된 주소 정책의 이름입니다.
업스트림요소에 대해 지정할 수 있는 추가 옵션은 아래에 설명되어 있습니다.name-
업스트림 브로커 구성의 이름입니다. 이 예에서 이름은
eu-east-1및eu-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입니다.
로컬 브로커에서 원격 브로커에 커넥터를 추가합니다. 이는 연합 주소 구성의
정적 연결 요소에서 참조되는 커넥터입니다. 예를 들면 다음과 같습니다.<connectors> <connector name="eu-west-1-connector">tcp://localhost:61616</connector> <connector name="eu-east-1-connector">tcp://localhost:61617</connector> </connectors>
<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 Copied! Toggle word wrap Toggle overflow