[java] JMS에서 이벤트 드리븐 메시지 전송 구현 방법

Java Message Service(JMS)는 Java 기반의 메시징 시스템을 구축하는 API입니다. 이벤트 드리븐 메시지 전송은 비동기적으로 메시지를 전송하고 이벤트를 처리하는 방식을 의미합니다. JMS를 사용하여 이벤트 드리븐 메시지 전송을 구현하는 방법에 대해 알아보겠습니다.

1. JMS 메시지 큐 생성

먼저, JMS 메시지 큐를 생성해야 합니다. 메시지 큐는 메시지를 보내고 받을 수 있는 장소입니다. JMS 제공자에 따라 메시지 큐를 생성하는 방법은 다를 수 있습니다.

// JMS 제공자에 따라서 다를 수 있는 코드
QueueConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
QueueConnection connection = connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("myQueue");

위 코드에서 createQueueConnection() 메서드를 사용하여 연결을 생성하고, createQueueSession() 메서드로 세션을 생성합니다. 그리고 createQueue() 메서드로 메시지 큐를 생성합니다.

2. 이벤트 발행

다음으로, 이벤트를 발행하는 방법에 대해 알아보겠습니다. 이벤트를 발행할 때에는 메시지를 생성하고 메시지 큐로 보내는 작업이 필요합니다.

// 이벤트 발행
QueueSender sender = session.createSender(queue);
TextMessage message = session.createTextMessage();
message.setText("Hello, World!");
sender.send(message);

위 코드에서 createSender() 메서드로 메시지 발송자를 생성하고, createTextMessage() 메서드로 텍스트 메시지를 생성합니다. 그리고 send() 메서드로 메시지를 보냅니다.

3. 이벤트 수신

마지막으로, 이벤트를 수신하는 방법에 대해 알아보겠습니다. 이벤트를 수신할 때에는 메시지 큐에서 메시지를 받아와 처리해야 합니다.

// 이벤트 수신
QueueReceiver receiver = session.createReceiver(queue);
Message message = receiver.receive();
if (message instanceof TextMessage) {
    TextMessage textMessage = (TextMessage) message;
    System.out.println("Received message: " + textMessage.getText());
}

위 코드에서 createReceiver() 메서드로 메시지 수신자를 생성하고, receive() 메서드로 메시지를 받습니다. 받은 메시지가 텍스트 메시지인 경우에는 getText() 메서드로 메시지 내용을 가져올 수 있습니다.

참고 자료