검색

3장. 엔터프라이즈 통합 패턴 소개

download PDF

초록

Apache Camel의 엔터프라이즈 통합 패턴은 Gregor Cryostathpe 및 Cryostatby Woolf가 작성한 것과 동일한 이름의 책에 의해 영향을 받습니다. 이러한 작성자가 설명하는 패턴은 엔터프라이즈 통합 프로젝트를 개발하기 위한 우수한 toolbox를 제공합니다. 통합 아키텍처 논의를 위한 공통 언어 제공 외에도 Apache Camel의 프로그래밍 인터페이스 및 XML 구성을 사용하여 많은 패턴을 직접 구현할 수 있습니다.

3.1. 패턴 개요

3.1.1. 엔터프라이즈 통합 패턴북

Apache Camel은 이 책의 대부분의 패턴, Gregor needhpe 및 Cryostatby Woolf의 Enterprise Integration Patterns 를 지원합니다.

3.1.2. 메시징 시스템

표 3.1. “메시징 시스템” 에 표시된 메시징 시스템 패턴에는 메시징 시스템을 구성하는 기본 개념과 구성 요소가 도입되었습니다.

표 3.1. 메시징 시스템
icon이름사용 사례

Message icon

그림 5.1. “메시지 패턴”

메시지 채널에 의해 연결된 두 애플리케이션이 정보를 교환하는 방법은 무엇입니까?

Message channel icon

그림 5.2. “메시지 채널 패턴”

하나의 애플리케이션이 메시징을 사용하여 다른 애플리케이션과 어떻게 통신합니까?

Message endpoint icon

그림 5.3. “메시지 끝점 패턴”

애플리케이션이 메시지를 보내고 수신하기 위해 메시징 채널에 연결하려면 어떻게 해야 합니까?

Pipes and filters icon

그림 5.4. “파이프 및 필터 패턴”

독립성과 유연성을 유지하면서 메시지에서 복잡한 처리를 어떻게 수행할 수 있습니까?

Message router icons

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

정의된 조건 세트에 따라 메시지를 다른 필터로 전달할 수 있도록 개별 처리 단계를 분리하려면 어떻게 해야 합니까?

Message translator icon

그림 5.8. “메시지#159 패턴”

서로 다른 데이터 형식을 사용하는 시스템은 메시징을 사용하여 서로 어떻게 통신합니까?

3.1.3. 메시징 채널

메시징 채널은 메시징 시스템의 참가자를 연결하는 데 사용되는 기본 구성 요소입니다. 표 3.2. “메시징 채널” 의 패턴은 사용 가능한 다양한 종류의 메시징 채널을 설명합니다.

표 3.2. 메시징 채널
icon이름사용 사례

Point to point icon

그림 6.1. “채널 패턴 지정”

호출자가 문서를 수신하거나 호출을 수행할 것이라고 정확히 한 수신자가 어떻게 확신할 수 있습니까?

Publish subscribe icon

그림 6.2. “서브스크립션 채널 패턴 게시”

발신자는 모든 관심 있는 수신자에게 이벤트를 어떻게 브로드캐스트할 수 있습니까?

Dead letter icon

그림 6.3. “dead letter 채널 패턴”

메시지 시스템은 전달할 수 없는 메시지와 어떤 역할을 합니까?

Guaranteed delivery icon

그림 6.4. “보장된 제공 패턴”

메시징 시스템이 실패하더라도 보낸 사람이 메시지를 전달하려면 어떻게 해야 합니까?

Message bus icon

그림 6.5. “메시지 버스 패턴”

다른 애플리케이션에 영향을 주지 않고 하나 이상의 애플리케이션을 추가하거나 제거할 수 있도록 별도의 분리된 애플리케이션이 함께 작동하도록 하는 아키텍처는 무엇입니까?

3.1.4. 메시지 구성

표 3.3. “메시지 구조” 에 표시된 메시지 구성 패턴은 시스템을 통과하는 메시지의 다양한 양식과 기능을 설명합니다.

표 3.3. 메시지 구조
icon이름사용 사례

Correlation identifier icon

“개요”

요청자는 수신된 응답을 생성한 요청을 어떻게 식별합니까?

Return address icon

7.3절. “반환 주소”

담당자는 어디에서 응답을 보낼 수 있는지 어떻게 알 수 있습니까?

3.1.5. 메시지 라우팅

표 3.4. “메시지 라우팅” 에 표시된 메시지 라우팅 패턴은 메시지 스트림에 적용할 수 있는 다양한 알고리즘을 포함하여 메시지 채널을 함께 연결하는 다양한 방법을 설명합니다(메시지 본문을 수정하지 않음).

표 3.4. 메시지 라우팅
icon이름사용 사례

Content based router icon

8.1절. “콘텐츠 기반 라우터”

단일 논리 기능(예: 인벤토리 확인)의 구현이 여러 물리적 시스템에 분배되는 상황을 어떻게 처리합니까?

Message filter icon

8.2절. “메시지 필터”

구성 요소가 관심 없는 메시지를 수신하지 않도록 하려면 어떻게 해야 합니까?

Recipient List icon

8.3절. “수신자 목록”

메시지를 동적으로 지정된 수신자 목록으로 라우팅하려면 어떻게 해야 합니까?

Splitter icon

8.4절. “Splitter”

여러 요소가 포함된 경우 메시지를 어떻게 처리할 수 있으며 각 요소를 다른 방식으로 처리해야 합니까?

Aggregator icon

8.5절. “수집기”

개별 결과를 어떻게 결합할 수 있지만 관련 메시지는 전체로 처리할 수 있도록 어떻게 결합합니까?

Resequencer icon

8.6절. “Resequencer”

어떻게 관련 된 스트림의 스트림을 얻을 수 있지만 out-of-sequence, 메시지를 다시 올바른 순서로 다시 얻을 수 있습니까?

distribution aggregate icon

8.14절. “구성된 메시지 프로세서”

여러 요소로 구성된 메시지를 처리할 때 전체 메시지 흐름을 어떻게 유지 관리할 수 있으며 각 요소에 따라 다른 처리가 필요할 수 있습니까?

 

8.15절. “together-Gather”

메시지를 여러 수신자에게 보내야 할 때 전체 메시지 흐름을 유지하려면 어떻게 해야 합니까? 각 수신자는 응답을 보낼 수 있습니까?

Routing slip icon

8.7절. “라우팅 슬립”

설계 시 단계 시퀀스를 알 수 없고 메시지에 따라 다를 수 있는 일련의 처리 단계를 통해 메시지를 연속으로 라우팅하려면 어떻게 해야 합니까?

 

8.8절. “Throttler”

특정 엔드포인트가 과부하되지 않도록 메시지를 제한하거나 일부 외부 서비스와 합의된 SLA를 초과하지 않도록하려면 어떻게 해야 합니까?

 

8.9절. “Delayer”

메시지 전송을 지연하려면 어떻게 해야 합니까?

 

8.10절. “로드 밸런서”

여러 끝점에서 부하를 분산하려면 어떻게 해야 합니까?

 

8.11절. “Hystrix”

외부 서비스를 호출할 때 Hystrix 회로 차단기를 사용하려면 어떻게 해야 합니까? Camel 2.18의 새로운 기능.

 

8.12절. “서비스 호출”

레지스트리에서 서비스를 조회하여 분산 시스템에서 원격 서비스를 호출하는 방법은 무엇입니까? Camel 2.18의 새로운 기능.

 

8.13절. “멀티 캐스트”

동시에 여러 끝점에 메시지를 라우팅하려면 어떻게 해야 합니까?

 

8.16절. “loop”

루프에서 메시지 처리를 반복하려면 어떻게 해야 합니까?

 

8.17절. “sampling”

자체 스트림 경로 과부하를 방지하기 위해 지정된 기간에 여러 메시지 중 하나의 메시지를 샘플링하려면 어떻게 해야 합니까?

3.1.6. 메시지 변환

표 3.5. “메시지 Cryostat” 에 표시된 메시지 변환 패턴은 다양한 용도로 메시지 내용을 수정하는 방법을 설명합니다.

표 3.5. 메시지 Cryostat
icon이름사용 사례

Content enricher icon

10.1절. “콘텐츠 Enricher”

메시지 원본기에 필요한 모든 데이터 항목이 없는 경우 다른 시스템과 어떻게 통신합니까?

Content filter icon

10.2절. “콘텐츠 필터”

몇 가지 데이터 항목에 관심이 있을 때 큰 메시지 처리를 간소화하려면 어떻게 해야 합니까?

store in library icon

10.4절. “클레임 확인 EIP”

정보 콘텐츠를 희생하지 않고 시스템 전체에서 전송되는 메시지의 데이터 볼륨을 어떻게 줄일 수 있습니까?

Normalizer icon

10.3절. “노멀라이저”

의미 체계적으로 동일하지만 다른 형식으로 도달하는 메시지는 어떻게 처리합니까?

 

10.5절. “정렬”

메시지 본문을 정렬하려면 어떻게 해야 합니까?

3.1.7. 메시징 끝점

메시징 끝점은 메시징 채널과 애플리케이션 간의 연결 지점을 나타냅니다. 표 3.6. “메시징 끝점” 에 표시된 메시징 끝점 패턴은 끝점에서 구성할 수 있는 다양한 기능과 서비스 특성을 설명합니다.

표 3.6. 메시징 끝점
icon이름사용 사례
 

11.1절. “메시징 매퍼”

두 항목을 서로 독립적으로 유지하면서 도메인 개체와 메시징 인프라 간에 데이터를 이동하는 방법은 무엇입니까?

Event driven icon

11.2절. “이벤트 기반 소비자”

애플리케이션에서 사용할 수 있을 때 메시지를 자동으로 사용하려면 어떻게 해야 합니까?

Polling consumer icon

11.3절. “폴링 소비자”

애플리케이션이 준비되었을 때 애플리케이션에서 메시지를 사용하는 방법은 무엇입니까?

Competing consumers icon

11.4절. “경쟁 소비자”

메시징 클라이언트는 어떻게 여러 메시지를 동시에 처리할 수 있습니까?

Message dispatcher icon

11.5절. “메시지 Dispatcher”

단일 채널의 여러 소비자는 메시지 처리를 어떻게 조정할 수 있습니까?

Selective consumer icon

11.6절. “선택적 소비자”

메시지 소비자는 어떻게 수신하려는 메시지를 선택할 수 있습니까?

Durable subscriber icon

11.7절. “Cryostat 구독자”

구독자가 수신 대기하지 않을 때 메시지가 누락되지 않도록 하려면 어떻게 해야 합니까?

 

11.8절. “idempotent 소비자”

메시지 수신자는 중복 메시지를 어떻게 처리할 수 있습니까?

Transactional client icon

11.9절. “트랜잭션 클라이언트”

클라이언트는 메시징 시스템을 사용하여 트랜잭션을 어떻게 제어할 수 있습니까?

Messaging gateway icon

11.10절. “메시징 게이트웨이”

나머지 애플리케이션에서 메시징 시스템에 대한 액세스를 캡슐화하려면 어떻게 해야 합니까?

Service activator icon

11.11절. “서비스 활성화기”

애플리케이션이 다양한 메시징 기술과 비메시징 기술을 통해 호출할 서비스를 설계하는 방법은 무엇입니까?

3.1.8. 시스템 관리

표 3.7. “System Management” 에 표시된 시스템 관리 패턴은 메시징 시스템을 모니터링, 테스트 및 관리하는 방법을 설명합니다.

표 3.7. System Management
icon이름사용 사례

Wire tap icon

12장. System Management

점대점 채널에서 이동하는 메시지를 어떻게 검사합니까?

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.