[java] Java에서 ActiveMQ 사용하기

ActiveMQ는 Apache Software Foundation에서 개발한 오픈 소스 메시지 브로커입니다. Java를 이용하여 ActiveMQ를 사용하는 방법에 대해 알아보겠습니다.

1. ActiveMQ 다운로드 및 설치

먼저, ActiveMQ를 다운로드하고 설치해야합니다. ActiveMQ의 최신 버전은 Apache의 공식 웹사이트에서 다운로드할 수 있습니다.

2. Maven Dependency 추가

ActiveMQ를 프로젝트에 사용하기 위해 Maven 의존성을 추가해야합니다. 프로젝트의 pom.xml 파일에 다음 종속성을 추가합니다:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.16.3</version>
</dependency>

3. ActiveMQ 연결 설정

ActiveMQ에 연결하기 위해 ActiveMQConnectionFactory 클래스를 사용해야 합니다. 다음은 연결 설정 예시입니다:

String brokerUrl = "tcp://localhost:61616";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);

위의 코드에서 brokerUrl은 ActiveMQ 서버의 URL을 나타냅니다.

4. Producer와 Consumer 생성

Producer는 메시지를 생성하고 ActiveMQ로 보내는 역할을 합니다. 다음은 Producer의 예시입니다:

try (ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
        Connection connection = connectionFactory.createConnection();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        MessageProducer producer = session.createProducer(session.createQueue("myQueue"))) {
    TextMessage message = session.createTextMessage("Hello, ActiveMQ!");
    producer.send(message);
    System.out.println("Message sent: " + message.getText());
} catch (JMSException e) {
    e.printStackTrace();
}

Consumer는 ActiveMQ로부터 메시지를 수신하고 처리하는 역할을 합니다. 다음은 Consumer의 예시입니다:

try (ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerUrl);
        Connection connection = connectionFactory.createConnection();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        MessageConsumer consumer = session.createConsumer(session.createQueue("myQueue"))) {
    connection.start();
    Message message = consumer.receive();
    if (message instanceof TextMessage) {
        TextMessage textMessage = (TextMessage) message;
        System.out.println("Received message: " + textMessage.getText());
    }
} catch (JMSException e) {
    e.printStackTrace();
}

결론

Java에서 ActiveMQ를 사용하는 방법에 대해 알아보았습니다. ActiveMQ를 사용하면 메시지를 안정적이고 효율적으로 처리할 수 있습니다. 애플리케이션이나 시스템 사이의 통신과 메시지 큐를 관리하기 위해 ActiveMQ를 사용하는 것은 좋은 선택일 수 있습니다.

더 자세한 정보는 ActiveMQ의 공식 문서를 참조하세요.