[java] ActiveMQ를 사용한 동기식 메시지 전송

이번 포스트에서는 Java 프로그래밍 언어를 사용하여 ActiveMQ를 활용하여 동기식 메시지를 전송하는 방법에 대해 알아보겠습니다.

ActiveMQ란?

ActiveMQ는 Apache 소프트웨어 재단에서 제공하는 오픈 소스 메시지 브로커입니다. 이는 메시지 기반 통신을 지원하며 Java Message Service(JMS) API를 따르고 있습니다. ActiveMQ를 사용하면 분산 시스템 간의 효율적인 통신을 구축할 수 있습니다.

ActiveMQ 설치 및 설정

ActiveMQ를 사용하기 위해 먼저 설치해야 합니다. 아래의 명령어를 사용하여 ActiveMQ를 다운로드하고 압축을 해제합니다.

wget https://archive.apache.org/dist/activemq/5.15.15/apache-activemq-5.15.15-bin.tar.gz
tar -xvf apache-activemq-5.15.15-bin.tar.gz

압축이 해제되면 apache-activemq-5.15.15 디렉토리가 생성됩니다. 해당 디렉토리로 이동한 후, ./bin/activemq start 명령어를 실행하여 ActiveMQ를 시작합니다.

동기식 메시지 전송

이제 ActiveMQ를 사용하여 동기식으로 메시지를 전송해보겠습니다. 먼저, Maven을 사용하여 ActiveMQ 라이브러리를 프로젝트에 추가합니다. pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-core</artifactId>
    <version>5.15.15</version>
</dependency>

다음으로, 메시지를 전송하는 코드를 작성합니다.

import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;

public class MessageProducer {
    public static void main(String[] args) {
        try {
            // ActiveMQ에 연결
            ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            Connection connection = connectionFactory.createConnection();
            connection.start();

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

            // 대상 큐 설정
            Queue queue = session.createQueue("my_queue");

            // 메시지 전송자 생성
            MessageProducer producer = session.createProducer(queue);

            // 메시지 생성
            TextMessage message = session.createTextMessage();
            message.setText("Hello, ActiveMQ!");

            // 메시지 전송
            producer.send(message);

            // 연결 종료
            connection.close();
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 ActiveMQ에 연결하고 메시지를 생성하여 지정된 큐로 전송하는 간단한 예제를 보여줍니다. tcp://localhost:61616는 ActiveMQ 브로커의 위치를 나타내는 URL입니다. 본인의 환경에 맞게 수정해주시기 바랍니다.

결론

이번 포스트에서는 ActiveMQ를 사용하여 동기식 메시지를 전송하는 방법에 대해 알아보았습니다. ActiveMQ를 활용하면 메시지 기반 통신을 편리하게 구축할 수 있으며, 다른 시스템 간의 통신에 유용한 도구입니다.

더 자세한 내용은 ActiveMQ 공식 문서를 참고하시기 바랍니다.