[원본 출처] http://servicemix.apache.org/docs/5.0.x/quickstart/activemq.html


Adding ActiveMQ to the 'Mix(ServiceMix에 ActveMQ 추가 하기)

Out-of-the-box, every Apache ServiceMix instance comes with an embedded ActiveMQ JMS broker. This makes it easy to communicate between Camel routes using persistent messages on the same machine, but it will also enable you to distribute your routes over multiple instances afterwards for clustering or load-balancing. 
박스의 안에서, 모든 Apache ServiceMix 인스턴스는 내장된 ActiveMQ JMX 브로커를 함께 제공된다. 이는 그것을 같은 기기에서 지속성있는 메시지를 사용하여 Camel 라우터들 사이를 통신하기 쉽게 만든다. 그러나 그것은 또한 당신을 클러스터링 또는 로드밸런싱 이후에 다수의 인스턴스들 위로 당신의 라우터들이 분배하도록 가능하게 할 것이다.

Our scenario(우리 시나리오:이번 예제)

In this scenario, we also want to move files between directories. Instead of logging the move directly, we are going to send an event JMS message onto a queue. Afterwards, we will create a second Camel route to receive the events and log them.
이 시나리오에서, 우리는 또한 이렉토리들 사이에서 파일이 옮겨지는 것을 원한다. 직접적으로 이동 로그기록 대신에 우리는 queue안에 이벤트 JMS 메시지를 보내내게 될 것이다.

Moving files and sending event messages(파일을 이동하고 이벤트 메시지 전송하기)

The first Blueprint XML file we'll create contains a Camel route that moves the files fromactivemq/input to the activemq/output directory. Afterwards, it will generate an event message and send that to an ActiveMQ queue called events.
우리가 만들게 될 첫번째 Blueprint  XML 파일은 activemq/input 에서 activemq/outpu 디렉토리로 파일을 옮기는 Camel 라우터를 포함한다. 이후 그것은 이벤트 메시지를 생성하고 ActiveMQ queue에 이벤트를 콜하기 위해 그것을 보낼 것이다. 

<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="file:activemq/input"/>
        <to uri="file:activemq/output"/>

        <setBody>
          <simple>
            FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
          </simple>
        </setBody>
        <to uri="activemq://events" />
      </route>
    </camelContext>
</blueprint>

Save this file in ServiceMix' deploy folder and use osgi:list to check on the bundle status as you did with the simple Camel example. You should now be able to put files in the activemq/input directory and see them being moved to activemq/output.
ServiceMix의 deploy폴더에 이 파일을 저장하라 그리고 당신이 했던 단순 Camel 예제의 번들 상태를 체크 하기 위해 osgi:list를 이용하라. 당신은 지금 activemq/input 디렉토리에 파일을 올리는 것을 할수 있게 될 것이고 그것들이 activemq/output로 이동 되는 것을 보게 될 것이다.      

Receiving the event messages(이벤트 메시지 받기)

After deploying the first XML file, you're obviously not seeing any events being logged yet. The event messages are sent to an ActiveMQ queue, but there's nobody to receive the events yet. Let's change that now by creating a second Blueprint XML file.
첫번재 XML 파일이 배포되고난 이후에 당신은 분명히 아직 어떤 이벤트가 로깅되는 것을 볼수 없을 것이다. 이 이벤트 메시지는 ActiveMQ queue에 보내진다 그러나 아직 그 이벤트를 받은 누구도 없다. 이제 두번째 Blueprint  XML 파일을 생성함으로써 지금 변경해보자 


<?xml version="1.0" encoding="UTF-8"?>
<blueprint
    xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      http://www.osgi.org/xmlns/blueprint/v1.0.0
      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">

    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
      <route>
        <from uri="activemq://events"/>
        <to uri="log:events"/>
      </route>
    </camelContext>
</blueprint>

As soon as this second file has been deployed, you'll start seeing the event messages in your log:display output.
두번째 파일이 배포되자 마자 당신은 당신의 log:display 출력에 이벤트 메시지를 보는 것을 시작하게 될 것이다.

Using the shell to manage the routes(라우터들 관를 위한 쉘 사용하기)

You can now start and stop both routes from the command shell. The important thing to note here is that you can stop the event handler route while files are being processed. As soon as you restart that bundle afterwards, you'll receive the events from all files that have been moved while the route was not running.
당신은 이제 커멘드 쉘을 통해서 라우터를 시작하고 멈출수 있다. 여기 기록하는 것이 중요한 것은 파일이 전송되는 동안 당신은 이벤트 핸들러 라우터를 멈출 수 있다. 당신이 이후 그 번들을 재시작 하자 마자 당신은 라두터가 동작하지 않는 동안 옮겨졌던 모든 파일들로 부터 이벤트를 받게 될 것이다.   


'Apache ServiceMix' 카테고리의 다른 글

ServiceMix User Guide - 소개  (0) 2014.08.11
ServiceMix Quickstart 추가 기능  (0) 2014.08.11
ServiceMix Quickstart Camel 라우팅  (0) 2014.07.29
ServiceMix Quickstart 콘솔  (0) 2014.07.29
ServiceMix Quickstart 설치  (0) 2014.07.29

+ Recent posts