7장. 메시지 구조
초록
메시지 구성 패턴은 시스템을 통과하는 메시지의 다양한 양식과 기능을 설명합니다.
7.1. 상관관계 식별자 링크 복사링크가 클립보드에 복사되었습니다!
7.1.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
그림 7.1. “상관관계 식별자 패턴” 에 표시된 상관 관계 식별자 패턴은 비동기 메시징 시스템이 요청 reply 프로토콜을 구현하는 데 사용되는 경우 응답 메시지와 요청 메시지를 일치시키는 방법을 설명합니다. 이 개념의 핵심은 요청 메시지가 고유한 토큰인 요청 ID를 사용하여 생성해야 하며, 요청 메시지를 식별하는 요청 ID 는 일치하는 요청 ID를 포함하는 토큰, 상관 관계 ID 인 토큰을 포함해야 한다는 것입니다.
Apache Camel은 메시지에서 헤더를 가져오거나 설정하여 EIP 패턴의 수정 ID를 지원합니다.
ActiveMQ 또는 JMS 구성 요소로 작업할 때 상관 관계 식별자 헤더를 JMSCorrelationID
라고 합니다. 메시지 교환에 고유한 상관관계 식별자를 추가하여 단일 대화(또는 비즈니스 프로세스)에서 메시지를 함께 상호 연관시킬 수 있습니다. 상관 관계 식별자는 일반적으로 Apache Camel 메시지 헤더에 저장됩니다.
일부 EIP 패턴은 하위 메시지를 회전하고, 이러한 경우 Apache Camel은 소스 교환에 다시 연결되는 키인 Exchange.CORRELATION_ID
를 가진 속성으로 상호 연결 ID를 교환에 추가합니다. 예를 들어, 분할자,멀티 캐스트,수신자 목록 및 유선 탭 EIP는 이 작업을 수행합니다.
그림 7.1. 상관관계 식별자 패턴
7.1. 이벤트 메시지 링크 복사링크가 클립보드에 복사되었습니다!
Camel은 단방향 이벤트 메시지를 나타내기 위해 메시지에서 교환 패턴을 지원하여 InOnly 로 설정할 수 있는 메시지 의 이벤트 메시지를 지원합니다. ??? 그런 다음 Camel Apache Camel 구성 요소 참조 는 기본 전송 또는 프로토콜을 사용하여 이 패턴을 구현합니다.
많은 Apache Camel 구성 요소 참조 의 기본 동작은 InOnly(예: JMS,File 또는 SEDA)입니다.
1. InOnly 지정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 InOut인 구성 요소를 사용하는 경우 pattern 속성을 사용하여 끝점에 대한 메시지 교환 패턴을 재정의할 수 있습니다.
foo:bar?exchangePattern=InOnly
foo:bar?exchangePattern=InOnly
Camel의 2.0 이후부터 DSL 을 사용하여 메시지 교환 패턴을 지정할 수 있습니다.
from("mq:someQueue"). inOnly(). bean(Foo.class);
from("mq:someQueue").
inOnly().
bean(Foo.class);
또는 명시적 패턴을 사용하여 끝점을 호출할 수 있습니다.
from("mq:someQueue"). inOnly("mq:anotherQueue");
from("mq:someQueue").
inOnly("mq:anotherQueue");
<route> <from uri="mq:someQueue"/> <inOnly uri="bean:foo"/> </route>
<route>
<from uri="mq:someQueue"/>
<inOnly uri="bean:foo"/>
</route>
<route> <from uri="mq:someQueue"/> <inOnly uri="mq:anotherQueue"/> </route>
<route>
<from uri="mq:someQueue"/>
<inOnly uri="mq:anotherQueue"/>
</route>