13장. JMS 브로커를 사용하여 배포
초록
Fuse 7.8은 기본 내부 브로커와 함께 제공되지 않지만 4개의 외부 JMS 브로커와 상호 작용하도록 설계되었습니다.
Fuse 7.8 컨테이너에는 지원되는 외부 브로커에 대한 브로커 클라이언트 라이브러리가 포함되어 있습니다.
Fuse 7.8 의 메시징에 사용할 수 있는 외부 브로커, 클라이언트 및 Camel 구성 요소 조합에 대한 자세한 내용은 지원 구성을 참조하십시오.
13.1. AMQ 7 빠른 시작
AMQ 7 브로커를 사용하여 앱의 설정 및 배포를 설명하기 위해 빠른 시작이 제공됩니다.
빠른 시작 다운로드
Fuse 소프트웨어 다운로드 페이지에서 모든 빠른 시작을 설치할 수 있습니다.
다운로드한 zip 파일의 내용을 로컬 폴더(예: quickstarts
라는 폴더 )로 추출합니다.
퀵스타트 설정
-
quickstarts/camel/camel-jms
폴더로 이동합니다. -
mvn clean install
을 입력하여 퀵스타트를 빌드합니다. -
org.ops4j.connectionfactory-amq7.cfg
파일을/camel/camel-jms/src/main
디렉터리에서 Fuse 설치의FUSE_HOME/etc
디렉토리로 복사합니다. 올바른 브로커 URL 및 인증 정보에 대한 콘텐츠를 확인합니다. 기본적으로 브로커 URL은 AMQ 7의 CORE 프로토콜에 따라 tcp://localhost:61616으로 설정됩니다. 인증 정보는 admin/admin으로 설정됩니다. 이러한 세부 정보를 외부 브로커에 맞게 변경하십시오. -
Windows에서
./bin/fuse
를 실행하거나 Linux에서./bin/fuse
를 실행하여 Fuse를 시작합니다. Fuse 콘솔에서 다음 명령을 입력합니다.
feature:install pax-jms-pool artemis-jms-client camel-blueprint camel-jms install -s mvn:org.jboss.fuse.quickstarts/camel-jms/${project.version}
번들을 배포할 때 Fuse에서 번들 ID를 제공합니다.
-
log:display
를 입력하여 시작 로그 정보를 확인합니다. 번들이 성공적으로 배포되었는지 확인합니다.
12:13:50.445 INFO [Blueprint Event Dispatcher: 1] Attempting to start Camel Context jms-example-context 12:13:50.446 INFO [Blueprint Event Dispatcher: 1] Apache Camel 2.21.0.fuse-000030 (CamelContext: jms-example-context) is starting 12:13:50.446 INFO [Blueprint Event Dispatcher: 1] JMX is enabled 12:13:50.528 INFO [Blueprint Event Dispatcher: 1] StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html 12:13:50.553 INFO [Blueprint Event Dispatcher: 1] Route: file-to-jms-route started and consuming from: file://work/jms/input 12:13:50.555 INFO [Blueprint Event Dispatcher: 1] Route: jms-cbr-route started and consuming from: jms://queue:incomingOrders?transacted=true 12:13:50.556 INFO [Blueprint Event Dispatcher: 1] Total 2 routes, of which 2 are started
퀵스타트 실행
-
Camel 경로가 실행되면
/camel/camel-jms/work/jms/input
디렉터리가 생성됩니다. /camel/camel-jms/src/main/data 디렉토리에서 파일을
디렉토리로 복사합니다./
camel/camel-jms/work/jms/input …/src/main/data
파일에 복사된 파일은 주문 파일입니다. 1분 정도 기다린 다음/camel/camel-jms/work/jms/output
디렉터리를 확인합니다. 파일은 대상 국가에 따라 별도의 디렉터리로 정렬됩니다.-
order1.xml
,order2.xml
및order4.xml
의/camel/camel-jms/work/jms/output/others/
-
/camel/camel-jms/work/jms/output/us
의order3.xml
및order5.xml
-
/camel/camel-jms/work/jms/output/fr
의order6.xml
-
-
log:display
를 사용하여 로그 메시지를 확인합니다.
Receiving order order1.xml Sending order order1.xml to another country Done processing order1.xml
- Camel 명령은 컨텍스트에 대한 세부 정보를 표시합니다.
컨텍스트 세부 정보를 표시하려면 camel:context-list
를 사용합니다.
Context Status Total # Failed # Inflight # Uptime ------- ------ ------- -------- ---------- ------ jms-example-context Started 12 0 0 3 minutes
context에 Camel 경로를 표시하려면 camel:route-list
를 사용합니다.
Context Route Status Total # Failed # Inflight # Uptime ------- ----- ------ ------- -------- ---------- ------ jms-example-context file-to-jms-route Started 6 0 0 3 minutes jms-example-context jms-cbr-route Started 6 0 0 3 minutes
교환 통계를 표시하려면 camel:route-info
를 사용합니다.
karaf@root()> camel:route-info jms-cbr-route jms-example-context Camel Route jms-cbr-route Camel Context: jms-example-context State: Started State: Started Statistics Exchanges Total: 6 Exchanges Completed: 6 Exchanges Failed: 0 Exchanges Inflight: 0 Min Processing Time: 2 ms Max Processing Time: 12 ms Mean Processing Time: 4 ms Total Processing Time: 29 ms Last Processing Time: 4 ms Delta Processing Time: 1 ms Start Statistics Date: 2018-01-30 12:13:50 Reset Statistics Date: 2018-01-30 12:13:50 First Exchange Date: 2018-01-30 12:19:47 Last Exchange Date: 2018-01-30 12:19:47