5장. 메시징 시스템


초록

이 장에서는 엔드포인트, 메시징 채널 및 메시지 라우터와 같은 메시징 시스템의 기본 구성 블록을 소개합니다.

5.1. 메시지

5.1.1. 개요

메시지는 메시징 시스템에서 데이터를 전송하기 위한 가장 작은 단위입니다(아래 그림의 회색 점으로 표시됨). 메시지 자체에는 몇 가지 내부 구조가 있을 수 있습니다. 예를 들어, 여러 parts Cryostat를 포함하는 메시지는 그림 5.1. “메시지 패턴” 의 회색 점에 연결된 기하학적 그림으로 표시됩니다.

그림 5.1. 메시지 패턴

메시지 패턴

5.1.2. 메시지 유형

Apache Camel은 다음과 같은 고유한 메시지 유형을 정의합니다.

  • 메시지 Cryostat- Cryostat 에서 소비자 끝점에서 생산자 엔드포인트(일반적으로 메시지 교환 시작)로 경로를 통과하는 메시지입니다.
  • 메시지 Cryostat- Cryostat는 생산자 끝점에서 소비자 끝점(일반적으로 In 메시지에 대한 응답으로)으로 경로를 통과하는 메시지입니다.

이러한 메시지 유형은 모두 org.apache.camel.Message 인터페이스로 내부적으로 표시됩니다.

5.1.3. 메시지 구조

기본적으로 Apache Camel은 모든 메시지 유형에 다음 구조를 적용합니다.

  • 메시지에서 추출된 메타데이터 또는 헤더 데이터를 포함합니다.Contains metadata or header data extracted from the message.
  • 본문 Cryostat - 일반적으로 원래 형식으로 전체 메시지를 포함합니다.
  • 첨부 파일 ( JBI와 같은 특정 메시징 시스템과 통합하기 위해 필수)

이 분할은 헤더, 본문 및 첨부 파일로 분할하는 것이 메시지의 추상 모델입니다. Apache Camel은 다양한 메시지 형식을 생성하는 다양한 구성 요소를 지원합니다. 궁극적으로 메시지 헤더 및 본문에 배치되는 항목을 결정하는 기본 구성 요소 구현입니다.

5.1.4. 메시지 연결

내부적으로 Apache Camel은 개별 메시지의 상관 관계를 유지하는 데 사용되는 메시지 ID를 기억합니다. 그러나 실제로 Apache Camel이 메시지의 상관 관계를 유지하는 가장 중요한 방법은 교환 오브젝트를 사용하는 것입니다.

5.1.5. 오브젝트 교환

교환 오브젝트는 관련 메시지를 캡슐화하는 엔티티로, 관련 메시지의 컬렉션을 메시지 교환 이라고 하며, 메시지 시퀀스를 관리하는 규칙을 교환 패턴 이라고 합니다. 예를 들어, 두 가지 일반적인 교환 패턴은 단방향 이벤트 메시지(메시지 포함) 및 요청 대응( In 메시지 포함) 및 외부 메시지입니다.

5.1.6. 메시지 액세스

Java DSL에서 라우팅 규칙을 정의할 때 다음과 같은 DSL 빌더 방법을 사용하여 메시지의 헤더 및 본문에 액세스할 수 있습니다.

  • header(String name), body() Cryostat- function은 named 헤더와 현재 In message의 본문을 반환합니다.
  • outBody() Cryostat- function 현재 Out 메시지의 본문을 반환합니다.

예를 들어 In 메시지의 사용자 이름 헤더를 채우려면 다음 Java DSL 경로를 사용할 수 있습니다.

from(SourceURL).setHeader("username", "John.Doe").to(TargetURL);
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.