179.11. 엔드포인트 재사용 및 런타임 시 계산된 다른 대상으로 전송


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

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

Expand
헤더유형설명

CamelJmsDestination

javax.jms.Destination

대상 오브젝트입니다.

CamelJmsDestinationName

문자열

대상 이름입니다.

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

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

큐 이름인 dummy 는 자리 표시자일 뿐입니다. JMS 끝점 URL의 일부로 제공되어야 하지만 이 예제에서는 무시됩니다.

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

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

그런 다음 Camel은 이 헤더를 읽고 엔드포인트에 구성된 대신 대상으로 사용합니다. 따라서 이 예제에서 Camel은 id 값이 2인 경우 activemq:queue: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
맨 위로 이동