178.11. 끝점을 재사용하고 런타임 시 계산되는 다른 대상에 전송


많은 다른 JMS 대상에 메시지를 보내야 하는 경우 JMS 끝점을 재사용하고 메시지 헤더에 실제 대상을 지정하는 것이 좋습니다. 이를 통해 Camel은 동일한 끝점을 재사용하지만 다른 대상으로 전송할 수 있습니다. 이렇게 하면 생성된 끝점 수를 크게 줄이고 메모리 및 스레드 리소스를 조정할 수 있습니다.

다음 헤더에서 대상을 지정할 수 있습니다.

Expand
header유형설명

CamelJmsDestination

javax.jms.Destination

대상 오브젝트입니다.

CamelJmsDestinationName

문자열

대상 이름입니다.

예를 들어 다음 경로는 런타임 시 대상을 계산하고 이를 사용하여 JMS URL에 표시되는 대상을 재정의하는 방법을 보여줍니다.

from("file://inbox")
  .to("bean:computeDestination")
  .to("activemq:queue:dummy");

큐 이름 dummy 는 자리 표시자일 뿐입니다. JMS 엔드포인트 URL의 일부로 제공해야 하지만 이 예제에서는 무시됩니다.

computeDestination Bean에서 CamelJmsDestinationName 헤더를 다음과 같이 설정하여 실제 대상을 지정합니다.

public void setJmsHeader(Exchange exchange) {
   String id = ....
   exchange.getIn().setHeader("CamelJmsDestinationName", "order:" + id");
}

그러면 Camel이 이 헤더를 읽고 엔드포인트에 구성된 헤더 대신 대상으로 사용합니다. 따라서 이 예에서 Camel은 id 값이 2라고 가정하여 activemq:queue:order:2 로 메시지를 보냅니다.

CamelJmsDestinationCamelJmsDestinationName 헤더가 모두 설정된 경우 CamelJmsDestination 이 우선합니다. JMS 생산자는 교환에서 CamelJmsDestinationCamelJmsDestinationName 헤더를 모두 제거하고 경로의 실수로 루프를 방지하기 위해 생성된 JMS 메시지에 전파하지 않습니다(메시지가 다른 JMS 엔드포인트로 전달되는 경우).

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동