아파치 카멜 예제 속시원내과 | 2019년 8월 3일

이 아파치 낙타 라우팅 예제에서, 우리는 다음과 같이 다른 목적을 위해 낙타 경로를 구성하는 다른 방법에 대해 배웠습니다 : 낙타 애그리 게이터에 대한 지속적인 지원을 보여 낙타를 시작할 때, 그것은 낙타 Context 개체를 만듭니다 즉, 우리가 만든 경로의 정의를 포함하여, 그것을 실행하는 방법에 대한 많은 정보를 보유하고 있습니다. 이제이 CamelContext를 더 많이 제어하려면 자신의 Main 클래스를 작성해야합니다. 나는 당신에게 여기에 간단한 하나를 보여줍니다. 이 튜토리얼에서는 대형 소프트웨어를 통합하는 가장 큰 과제 중 일부가 무엇인지, 아파치 낙타가 어떻게 쉽게 해결하는지 배우게 됩니다. 이 디렉토리는 아파치 낙타작업에 대한 다양한 예제가 포함되어 있습니다. 예제는 Maven을 사용하여 실행할 수 있습니다. Maven 명령을 사용하는 경우 Maven은 중앙 리포지토리에서 로컬 리포지토리로 필요한 종속성을 다운로드하려고 시도합니다. 자세한 내용은 개별 예제 READM을 참조하십시오. 먼저, 나중에 낙타 경로를 정의하는 스프링 구성 파일을 만듭니다. 다음 코드 스니펫은 CamelContext를 시작하고 30초 후에 중지하는 Java 기본 메서드를 보여 주입니다.

일반적으로 CamelContext는 응용 프로그램을 로드할 때 시작되고 종료 시 중지됩니다. 경로를 보다 쉽고 깨끗하게 정의하기 위해 Camel은 Java 또는 Groovy와 같은 프로그래밍 언어에 대해 여러 가지 도메인별 언어(DSL)를 제공합니다. 다른 한편으로는, 또한 스프링 DSL와 XML에서 정의 경로를 제공합니다. 이 예제에서는 Camel을 통해 비즈니스 논리에 집중하고 상용구 코드의 양을 줄일 수 있습니다. 아파치 낙타 경로는 자바 또는 스칼라 DSL로 작성할 수 있습니다. XML 구성도 사용할 수 있지만 너무 자세한 내용이 되어 디버깅 기능이 더 나빠집니다. 통신 서비스의 기술 스택에 제한을 부과하지는 않지만 Java 또는 Scala로 작성하는 경우 독립 실행형 으로 실행하는 대신 응용 프로그램에 Camel을 포함할 수 있습니다. 아파치 낙타는 시스템을 간단하고 쉽게 통합할 수 있도록 설계된 오픈 소스 통합 프레임워크입니다. 통합 작업을 수행하는 경우 아파치 카멜은 확실히 일을 쉽게 만들 수 있습니다. 라이브러리는 상용구 코드를 줄이고 데이터 처리의 주요 논리에 집중하는 데 도움이 되는 플러그 앤 플레이 구성 요소를 제공합니다. 몇 년 전, 저는 널리 분산된 위치에 있는 매장과 함께 거대한 식료품 소매 네트워크에서 엔터프라이즈 통합을 구축하고 있었습니다. 나는 유지 보수가 지나치게 번거로울 것으로 판명 된 독점 ESB 솔루션으로 시작했습니다.

그런 다음 우리 팀은 아파치 카멜을 우연히 접했고, “개념 증명” 작업을 수행한 후 낙타 경로의 모든 데이터 흐름을 신속하게 다시 작성했습니다. 카벨과 카산드라가 쿠베네테스에서 실행되는 예는 낙타의 AMQP 구성 요소를 사용하여 ActiveMQ Artemis를 보여줍니다. 이 테스트하기 위해, 우리는 봄에 우리의 CamelContext를로드합니다 ClassPathXmlApplicationContext의 인스턴스를 만들어야합니다 : 아래는 CamelContext를 구성하는 동안 고려해야 할 단계입니다 : 왜 필요한지 설명하기는 매우 어렵습니다. 아파치 낙타,하지만 난 시도 할 것이다.

Comments are closed.