[java] Apache ActiveMQ와 브로커 클라이언트 연결 방법

Apache ActiveMQ는 대표적인 오픈 소스 메시징 시스템 중 하나로, 메시지 기반의 통신을 지원합니다. 이 글에서는 Apache ActiveMQ와 브로커 클라이언트를 어떻게 연결하는지 알아보겠습니다.

1. Apache ActiveMQ 설치 및 실행

먼저 Apache ActiveMQ를 설치해야 합니다. 아래 링크에서 해당 운영체제에 맞는 패키지를 다운로드 받아 설치합니다.

Apache ActiveMQ 다운로드 페이지

설치가 완료되었다면 터미널 또는 명령 프롬프트를 열고 ActiveMQ를 실행합니다.

$ cd <activemq_installation_directory>/bin
$ ./activemq start

2. 브로커 클라이언트 설정

브로커 클라이언트는 ActiveMQ에 연결하여 메시지를 주고받을 수 있는 클라이언트 예제입니다. 자바에서는 javax.jms 패키지를 사용하여 ActiveMQ에 접속할 수 있습니다.

아래는 브로커 클라이언트의 예제 코드입니다.

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;

public class BrokerClient {

    public static void main(String[] args) throws Exception {
        // ActiveMQ 브로커에 연결하는 ConnectionFactory 생성
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

        // Connection 생성
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // Session 생성
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // Destination(Queue) 생성
        Queue queue = session.createQueue("my_queue");

        // MessageProducer 생성
        MessageProducer producer = session.createProducer(queue);

        // Message 생성
        Message message = session.createTextMessage("Hello, ActiveMQ!");

        // Message 전송
        producer.send(message);
        System.out.println("Message sent successfully!");

        // MessageConsumer 생성
        MessageConsumer consumer = session.createConsumer(queue);

        // Message 수신
        Message receivedMessage = consumer.receive();
        System.out.println("Received message: " + ((TextMessage) receivedMessage).getText());
        
        // 연결 종료
        session.close();
        connection.close();
    }
}

위 예제 코드에서는 tcp://localhost:61616을 통해 로컬 호스트에 실행 중인 ActiveMQ 브로커에 연결합니다. my_queue라는 Queue에 메시지를 보내고 받는 예제입니다.

3. 실행 및 확인

위 예제 코드를 컴파일하고 실행하면 ActiveMQ 브로커에 연결되고 메시지를 주고 받을 수 있습니다. 메시지를 성공적으로 주고 받는지 확인하기 위해 ActiveMQ 관리 콘솔에 접속하여 큐에 남은 메시지를 확인할 수 있습니다.

웹 브라우저에서 http://localhost:8161/admin 주소로 접속하면 ActiveMQ 관리 콘솔에 접속할 수 있습니다. 기본 계정은 admin/admin이며, 로그인 후 메시지 브라우저를 통해 my_queue에 남은 메시지를 확인할 수 있습니다.

요약

지금까지 Apache ActiveMQ와 브로커 클라이언트의 연결 방법을 알아보았습니다. ActiveMQ를 설치하고 브로커 클라이언트를 사용하여 메시지를 주고 받을 수 있습니다. 이를 통해 분산 시스템이나 비동기 통신을 구현할 수 있는 강력한 도구인 ActiveMQ를 활용해 볼 수 있습니다.


참고 자료: