23장. 다중 경로
diverts는 JBoss EAP 메시징에 구성된 개체로, 한 주소에서 다른 주소로 메시지를 전환하는 데 도움이 됩니다. dists는 다음 유형으로 분류할 수 있습니다.
- 배타적
- 메시지는 새 주소로만 전환되며 이전 주소로 전송되지 않습니다.
- 제외되지 않음
- 메시지가 이전 주소가 전송되고 복사본도 새 주소로 전송됩니다. 비독점 분산은 메시지 흐름을 분할하는 데 사용할 수 있습니다.
다중 경로는 동일한 서버의 주소로만 메시지를 전환합니다. 다른 서버의 주소로 전환하려는 경우 공통 패턴은 로컬 저장소 및 전달 대기열로 전환한 다음, 해당 대기열에서 사용하는 브리지를 설정하고 다른 서버의 주소로 전달합니다.
따라서 다중 경로는 매우 정교한 개념입니다. 브리지와 결합하면 다중 경로를 사용하여 흥미롭고 복잡한 라우팅을 만들 수 있습니다. 서버의 다중 집합은 메시지의 라우팅 테이블 유형으로 간주할 수 있습니다. 다종과 브리지를 결합하면 여러 지리적으로 분산된 서버 간에 안정적인 라우팅 연결의 분산 네트워크를 생성하여 글로벌 메시징 메시를 만들 수 있습니다. 브리지 사용 방법에 대한 자세한 내용은 코어 브리지 구성을 참조하십시오.
Transformer
및 선택적 메시지 필터를 적용하도록 dists를 구성할 수 있습니다. 선택적 메시지 필터는 지정된 필터와 일치하는 메시지만 전환하는 데 도움이 됩니다. 필터에 대한 자세한 내용은 필터 표현식 및 메시지 선택기를 참조하십시오.
변환기는 메시지를 다른 형식으로 변환하는 데 사용됩니다. 변환기를 지정하면 모든 변조된 메시지가 Transformer
에 의해 변환됩니다. 모든 변환기는 org.apache.activemq.artemis.core.server.cluster.Transformer
인터페이스를 구현해야 합니다.
JBoss EAP 메시징을 활성화하여 변환기 구현 인스턴스를 인스턴스화하려면 JBoss EAP 모듈에 해당 모듈을 포함한 다음 해당 모듈을 org.apache.activemq.artemis
모듈에 내보낸 종속성으로 추가해야 합니다. 사용자 지정 모듈을 생성하는 방법에 대한 자세한 내용은 JBoss EAP 구성 가이드에서 사용자 지정 모듈 만들기를 참조하십시오. 종속 항목을 org.apache.activemq.artemis
모듈에 추가하려면 다음 예제와 같이 EAP_HOME/modules/system/layers/base/org/apache/activemq/artemis/main/module.xml
파일을 열고 <module>
을 <dependencies>
목록에 추가합니다.
23.1. 배타적 다트 링크 복사링크가 클립보드에 복사되었습니다!
다음은 구성에 표시될 수 있는 배타적 변형의 예입니다.
이 예에서는 price -divert
라는 다양한 구분선이 구성되어 있으며, 이 주소는 jms.topic. PriceUpdates
주소로 전송되는 메시지를 priceUpdates
라고 하는 자카르타 메시징 항목에 매핑하고, 다른 로컬 주소 jms.queue.priceForwarding에 해당하며 priceForwarding
이라는 로컬 자카르타 메시징 큐에 매핑됩니다.
또한 New York
값이 있는 메시지 속성이 있는
메시지 필터 문자열도 지정합니다. 다른 모든 메시지는 계속 일반 주소로 라우팅됩니다. 필터 문자열이 지정되지 않은 경우 모든 메시지가 일치하는 것으로 간주됩니다.
변환기 클래스는 지정됩니다. 이 예제에서 변환기는 변동이 발생한 시간을 기록하는 헤더를 추가합니다.
이 예제는 실제로 메시지를 로컬 저장소로 전환하고 대기열을 전달합니다. 이 대기열은 메시지를 다른 서버의 주소로 전달하는 브리지로 구성됩니다. 자세한 내용은 코어 브리지 구성을 참조하십시오.