ActiveMQ 설치


Camel Dependency 추가

 

- ActiveMQ 컴포넌트 추가

. ActiveMQ 컴포넌트는 Camel 컴포넌트가 아니기 때문에 pom.xml에 dependency 추가해주어야 한다.


Sender(Producer)

 

- Message Sender Route 정의

@Component
public class ActiveMqSenderRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        //timer
        from("timer:active-mq-timer?period=10000")
            .transform().constant("My message for Active MQ")
            .to("activemq:my-activemq-queue");
        //queue
    }
}

. sender(producer) route를 정의한 camel application을 구동하면, 아래와 같이 queue가 생성됨

. message가 생성되는 period는 30초로 설정 (timer 컴포넌트 옵션)

. 아직 receiver(consumer)가 없으므로 메시지가 pending messages로 쌓이는 것을 확인할 수 있음

- Message Receiver Route 정의 

@Component
public class ActiveMqReceiverRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("activemq:my-activemq-queue")
            .to("log:received-message-from-active-mq");
    }

}

. receiver(consumer) route를 정의한 camel application을 구동하면, 아래와 같이 queue에서 메시지를 가져와 log를 생성

. Queue 상태창을 보면 pending되었던 메시지들이 모두 소비된 것과, consumer application이 구동 중인 것을 확인할 수 있음

+ Recent posts