5.5. 메시지 라우터


5.5.1. 개요

그림 5.7. “메시지 라우터 패턴” 에 표시된 메시지 라우터 는 단일 소비자 끝점의 메시지를 사용하고 특정 의사 결정 기준에 따라 적절한 대상 끝점으로 리디렉션하는 필터 유형입니다. 메시지 라우터는 메시지를 리디렉션하는 데만 관련이 있습니다. 메시지 내용은 수정되지 않습니다.

그러나 기본적으로 Camel이 메시지 교환을 수신자 엔드포인트로 라우팅할 때마다 원본 교환 오브젝트의 단순 복사본입니다. 부분 복사에서는 메시지 본문, 헤더 및 첨부 파일과 같은 원래 교환의 요소는 참조용으로만 복사됩니다. Camel은 리소스를 재사용하는 단순 복사본을 전송하여 성능을 위해 최적화합니다. 그러나 이러한 부분 사본이 모두 연결되어 있기 때문에 Camel이 메시지를 여러 끝점으로 라우팅하는 경우 장단점은 다른 수신자로 라우팅되는 사본에 사용자 정의 논리를 적용할 수 있다는 것입니다. Camel에서 고유한 버전의 메시지를 다른 엔드포인트로 라우팅하는 방법에 대한 자세한 내용은 "계속 메시지에 사용자 정의 처리"를 참조하십시오.

그림 5.7. 메시지 라우터 패턴

메시지 라우터 패턴

메시지 라우터는 choose () 프로세서를 사용하여 Apache Camel에서 쉽게 구현할 수 있습니다. 여기서 각 대체 대상 끝점은 when() 하위 옵션을 사용하여 선택할 수 있습니다(선택 프로세서에 대한 자세한 내용은 1.5절. “프로세서”참조).

5.5.2. Java DSL 예

다음 Java DSL 예제에서는 foo 헤더의 콘텐츠에 따라 세 가지 대체 대상( seda:a,seda:b 또는 seda:c)으로 메시지를 라우팅하는 방법을 보여줍니다.

from("seda:a").choice()
    .when(header("foo").isEqualTo("bar")).to("seda:b")
    .when(header("foo").isEqualTo("cheese")).to("seda:c")
    .otherwise().to("seda:d");

5.5.3. XML 구성 예

다음 예제에서는 XML로 동일한 경로를 구성하는 방법을 보여줍니다.

<camelContext id="buildSimpleRouteWithChoice" xmlns="http://camel.apache.org/schema/spring">
  <route>
    <from uri="seda:a"/>
    <choice>
      <when>
        <xpath>$foo = 'bar'</xpath>
        <to uri="seda:b"/>
      </when>
      <when>
        <xpath>$foo = 'cheese'</xpath>
        <to uri="seda:c"/>
      </when>
      <otherwise>
        <to uri="seda:d"/>
      </otherwise>
    </choice>
  </route>
</camelContext>

5.5.4. 그렇지 않은 경우 선택

otherwise() 절 없이 choice() 을 사용하면 일치하지 않는 교환이 기본적으로 삭제됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.