Apache Camel-개요

Camel은 일부 엔드 포인트에서 메시지를 수신하여 다른 엔드 포인트로 보내는 블랙 박스입니다. 블랙 박스 내에서 메시지를 처리하거나 단순히 리디렉션 할 수 있습니다.

그렇다면 왜이를위한 프레임 워크가 있습니까? 도입 사례 연구에서 볼 수 있듯이 실제 상황에서는 ftp, http 및 jms와 같은 자체 프로토콜을 따르는 많은 발신자와 수신자가있을 수 있습니다. 시스템은 보낸 사람 A의 메시지가 B & C에게만 전달되어야하는 것과 같은 많은 복잡한 규칙을 요구할 수 있습니다. 상황에서 메시지를 수신자가 예상하는 다른 형식으로 변환해야 할 수 있습니다. 이 번역은 메시지 내용에 따라 특정 조건이 적용될 수 있습니다. 따라서 기본적으로 프로토콜 간 변환, 구성 요소 연결, 라우팅 규칙 정의, 메시지 콘텐츠 기반 필터링 제공이 필요할 수 있습니다. 이것은 다음 그림에 설명되어 있습니다.

위의 요구 사항을 충족하고 이러한 많은 상황에 적합한 소프트웨어 아키텍처를 설계하기 위해 EIP (Enterprise Integration Patterns )는 2003 년 Gregor Hohpe 및 Bobby Woolf에 의해 문서화되었습니다. Apache Camel은 이러한 패턴의 구현을 제공하며이 튜토리얼의 목적은 다음과 같습니다. 소개에서 설명한 것과 같은 상황에서 Camel을 사용하는 방법.

Apache Camel은 오픈 소스 프레임 워크입니다. 규칙 기반 라우팅 및 중개 엔진을 제공하는 메시지 지향 미들웨어입니다. "우유"주문 인 경우 우유 공급 업체로 리디렉션하고 "오일"주문 인 경우 오일 공급 업체로 리디렉션하는 등의 규칙을 정의 할 수 있습니다. Camel을 사용하면 이러한 규칙을 구현하고 익숙한 Java 코드로 라우팅을 수행 할 수 있습니다. 이는 익숙한 Java IDE를 사용하여 유형이 안전한 환경에서 이러한 규칙을 정의 할 수 있음을 의미합니다. 일반적으로 부피가 큰 경향이있는 XML 구성 파일을 사용할 필요가 없습니다. Camel은 규칙 구성에 XML을 사용하는 것을 선호하는 경우 Spring 프레임 워크를 통해 XML 구성을 지원합니다. Scala 애호가라면 Blueprint XML 구성 파일과 Scala DSL을 사용할 수도 있습니다. 또한 선호하는 Java, Scala IDE 또는 간단한 XML 편집기를 사용하여 규칙을 구성 할 수 있습니다.

이 엔진에 대한 입력은 쉼표로 구분 된 텍스트 파일, POJO (Plain Old Java Object), XML은 Camel에서 지원하는 여러 다른 형식 중 하나 일 수 있습니다. 마찬가지로 엔진의 출력을 파일, 메시지 대기열 또는 모니터 화면으로 리디렉션하여 각 공급 업체에 보낸 주문을 볼 수 있습니다. 이를 엔드 포인트라고하며 Camel은 메시지 엔드 포인트 EIP 패턴을 지원합니다 . Camel 끝점은 끝점 장의 뒷부분에서 설명합니다.

Camel은 일반적으로 서비스 지향 아키텍처를 구현하기 위해 Apache ServiceMix , Apache ActiveMQ 및 Apache CXF 와 함께 사용됩니다 .