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
Camel의 2.0 이후부터 DSL 을 사용하여 메시지 교환 패턴을 지정할 수 있습니다.
from("mq:someQueue"). inOnly(). bean(Foo.class);
또는 명시적 패턴을 사용하여 끝점을 호출할 수 있습니다.
from("mq:someQueue"). inOnly("mq:anotherQueue");
<route> <from uri="mq:someQueue"/> <inOnly uri="bean:foo"/> </route>
<route> <from uri="mq:someQueue"/> <inOnly uri="mq:anotherQueue"/> </route>