178.11. 런타임 시 끝점을 재사용하고 계산된 다른 대상으로 보냅니다.


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

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

Expand
header유형설명

CamelJmsDestination

javax.jms.Destination

대상 오브젝트입니다.

CamelJmsDestinationName

문자열

대상 이름입니다.

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

from("file://inbox")
  .to("bean:computeDestination")
  .to("activemq:queue:dummy");
Copy to Clipboard Toggle word wrap

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

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

public void setJmsHeader(Exchange exchange) {
   String id = ....
   exchange.getIn().setHeader("CamelJmsDestinationName", "order:" + id");
}
Copy to Clipboard Toggle word wrap

그런 다음 Camel은 이 헤더를 읽고 끝점에 구성된 헤더 대신 대상으로 사용합니다. 따라서 이 예에서 Camel은 ID 값이 2라고 가정하여 activemq:queue:order:2메시지 를 전송합니다.

CamelJmsDestinationCamelJmsDestinationName 헤더가 모두 설정된 경우 CamelJmsDestination 이 우선합니다. JMS 생산자는 교환에서 CamelJmsDestination Name 헤더와 CamelJmsDestinationName 헤더를 모두 제거하고 경로의 실수로 루프를 방지하기 위해 생성된 JMS 메시지로 전파하지 않습니다(메시지가 다른 JMS 끝점으로 전달되는 시나리오).

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동