[java] JMS에서 지원하는 토픽 생성과 사용 방법

Java Message Service (JMS)는 Java 애플리케이션 간에 비동기식 메시지 통신을 위한 API입니다. JMS를 사용하면 다른 애플리케이션과의 통신을 통해 데이터를 전달할 수 있습니다. JMS는 토픽 및 큐와 같은 메시지 대상을 지원하여 다양한 메시지 패턴을 구현할 수 있습니다. 이번 글에서는 JMS 토픽을 생성하고 사용하는 방법에 대해 알아보겠습니다.

1. 토픽 생성

JMS에서 토픽을 생성하기 위해서는 해당 토픽을 관리하는 JMS 공급자(예: Apache ActiveMQ, IBM MQ 등)를 먼저 설치해야 합니다. JMS 공급자에 따라 설정 방법이 다를 수 있으니, 해당 공급자의 설치 및 설정 가이드를 참고하시기 바랍니다.

토픽을 생성하는 방법은 JMS 공급자마다 다를 수 있지만, 보통은 다음과 같은 단계를 거칩니다.

  1. JMS 공급자에 로그인하거나 관리 도구를 실행합니다.
  2. 토픽 생성을 위한 설정 옵션을 선택 또는 입력합니다. 토픽의 이름과 기타 속성을 지정할 수 있습니다.
  3. 토픽 생성을 완료하고 활성화합니다.

2. 토픽 사용

JMS 애플리케이션에서 토픽을 사용하기 위해서는 다음과 같은 단계를 따를 수 있습니다.

  1. JMS 공급자에 연결합니다.
  2. 토픽에 대한 구독자를 생성합니다. 이를 통해 토픽에서 발행되는 메시지를 수신할 수 있습니다.
  3. 토픽에 메시지를 발행합니다. 발행된 메시지는 해당 토픽에 구독한 모든 수신자들에게 전달됩니다.
  4. 토픽 구독자는 수신한 메시지를 처리합니다.

아래는 JMS 토픽을 사용하는 예제 코드입니다.

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Session;
import javax.jms.Topic;
import javax.jms.MessageProducer;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;

public class JmsTopicExample {
    public static void main(String[] args) {
        try {
            // JMS 공급자에 연결하기 위한 ConnectionFactory 생성
            ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
            
            // ConnectionFactory로부터 Connection 생성
            Connection connection = factory.createConnection();
            
            // Connection 시작
            connection.start();
            
            // Session 생성
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            
            // 토픽 생성
            Topic topic = session.createTopic("exampleTopic");
            
            // 토픽에 메시지를 발행하기 위한 MessageProducer 생성
            MessageProducer producer = session.createProducer(topic);
            
            // 메시지 생성 및 설정
            TextMessage message = session.createTextMessage();
            message.setText("Hello, JMS Topic!");
            
            // 토픽에 메시지 발행
            producer.send(message);
            
            // 연결 종료
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위 예제는 Apache ActiveMQ를 사용하여 JMS 토픽을 생성하고 메시지를 발행하는 간단한 예제입니다. ActiveMQ에 연결하고 토픽을 생성한 후, 메시지를 발행하는 코드를 포함하고 있습니다.

더 자세한 JMS API 및 사용법에 대해서는 Oracle Java Documentation(https://docs.oracle.com/javaee/7/tutorial/jms.htm)을 참고하시기 바랍니다.

참고 자료