23장. 다중 경로


diverts는 JBoss EAP 메시징에 구성된 개체로, 한 주소에서 다른 주소로 메시지를 전환하는 데 도움이 됩니다. dists는 다음 유형으로 분류할 수 있습니다.

배타적
메시지는 새 주소로만 전환되며 이전 주소로 전송되지 않습니다.
제외되지 않음
메시지가 이전 주소가 전송되고 복사본도 새 주소로 전송됩니다. 비독점 분산은 메시지 흐름을 분할하는 데 사용할 수 있습니다.

다중 경로는 동일한 서버의 주소로만 메시지를 전환합니다. 다른 서버의 주소로 전환하려는 경우 공통 패턴은 로컬 저장소 및 전달 대기열로 전환한 다음, 해당 대기열에서 사용하는 브리지를 설정하고 다른 서버의 주소로 전달합니다.

따라서 다중 경로는 매우 정교한 개념입니다. 브리지와 결합하면 다중 경로를 사용하여 흥미롭고 복잡한 라우팅을 만들 수 있습니다. 서버의 다중 집합은 메시지의 라우팅 테이블 유형으로 간주할 수 있습니다. 다종과 브리지를 결합하면 여러 지리적으로 분산된 서버 간에 안정적인 라우팅 연결의 분산 네트워크를 생성하여 글로벌 메시징 메시를 만들 수 있습니다. 브리지 사용 방법에 대한 자세한 내용은 코어 브리지 구성을 참조하십시오.

Transformer 및 선택적 메시지 필터를 적용하도록 dists를 구성할 수 있습니다. 선택적 메시지 필터는 지정된 필터와 일치하는 메시지만 전환하는 데 도움이 됩니다. 필터에 대한 자세한 내용은 필터 표현식 및 메시지 선택기를 참조하십시오.

변환기는 메시지를 다른 형식으로 변환하는 데 사용됩니다. 변환기를 지정하면 모든 변조된 메시지가 Transformer 에 의해 변환됩니다. 모든 변환기는 org.apache.activemq.artemis.core.server.cluster.Transformer 인터페이스를 구현해야 합니다.

package org.apache.activemq.artemis.core.server.cluster;
import org.apache.activemq.artemis.core.server.ServerMessage;

public interface Transformer {
   ServerMessage transform(ServerMessage message);
}
Copy to Clipboard Toggle word wrap

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> 목록에 추가합니다.

<module xmlns="urn:jboss:module:1.3" name="org.apache.activemq.artemis">
    <resources>
      ...
    </resources>
    <dependencies>
      ...
      <module name="YOUR_MODULE_NAME" export="true"/>
    </dependencies>
</module>
Copy to Clipboard Toggle word wrap

23.1. 배타적 다트

다음은 구성에 표시될 수 있는 배타적 변형의 예입니다.

<divert
  name="prices-divert"
  address="jms.topic.priceUpdates"
  forwarding-address="jms.queue.priceForwarding"
  filter="office='New York'"
  transformer-class-name="org.apache.activemq.artemis.jms.example.AddForwardingTimeTransformer"
  exclusive="true"/>
Copy to Clipboard Toggle word wrap

이 예에서는 price -divert 라는 다양한 구분선이 구성되어 있으며, 이 주소는 jms.topic. PriceUpdates 주소로 전송되는 메시지를 priceUpdates 라고 하는 자카르타 메시징 항목에 매핑하고, 다른 로컬 주소 jms.queue.priceForwarding에 해당하며 priceForwarding 이라는 로컬 자카르타 메시징 큐에 매핑됩니다.

또한 New York 값이 있는 메시지 속성이 있는 메시지 필터 문자열도 지정합니다. 다른 모든 메시지는 계속 일반 주소로 라우팅됩니다. 필터 문자열이 지정되지 않은 경우 모든 메시지가 일치하는 것으로 간주됩니다.

변환기 클래스는 지정됩니다. 이 예제에서 변환기는 변동이 발생한 시간을 기록하는 헤더를 추가합니다.

이 예제는 실제로 메시지를 로컬 저장소로 전환하고 대기열을 전달합니다. 이 대기열은 메시지를 다른 서버의 주소로 전달하는 브리지로 구성됩니다. 자세한 내용은 코어 브리지 구성을 참조하십시오.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat