[java] Apache Qpid과 메시지 프로듀서와 컨슈머

Apache Qpid은 AMQP(Advanced Message Queuing Protocol)를 구현하는 오픈 소스 메시징 시스템이다. 이를 사용하여 메시지 프로듀서와 컨슈머를 만들어 볼 것이다. 이 글에서는 Apache Qpid의 Java 클라이언트 라이브러리를 사용하여 간단한 메시지 프로듀서와 컨슈머를 만드는 방법을 알아볼 것이다.

메시지 프로듀서 만들기

먼저 Maven을 사용하여 Apache Qpid Java 클라이언트 라이브러리를 프로젝트에 추가한다.

<dependency>
    <groupId>org.apache.qpid</groupId>
    <artifactId>qpid-jms-client</artifactId>
    <version>0.63.0</version>
</dependency>

그런 다음, 다음의 코드를 사용하여 메시지를 생성하고 전송하는 메시지 프로듀서를 만들 수 있다.

import javax.jms.*;

public class MessageProducer {
    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new org.apache.qpid.jms.JmsConnectionFactory("amqp://localhost:5672");
        Connection connection = connectionFactory.createConnection();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue("my-queue");
        MessageProducer producer = session.createProducer(destination);

        TextMessage message = session.createTextMessage("Hello, Qpid!");
        producer.send(message);

        connection.close();
    }
}

메시지 컨슈머 만들기

이제 메시지를 수신하는 메시지 컨슈머를 만들어보겠다.

import javax.jms.*;

public class MessageConsumer {
    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new org.apache.qpid.jms.JmsConnectionFactory("amqp://localhost:5672");
        Connection connection = connectionFactory.createConnection();
        connection.start();
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue("my-queue");
        MessageConsumer consumer = session.createConsumer(destination);
        
        consumer.setMessageListener(message -> {
            if (message instanceof TextMessage) {
                try {
                    System.out.println("Received message: " + ((TextMessage) message).getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

이제 두 개의 간단한 Java 프로그램으로 메시지 프로듀서와 컨슈머를 만들었다. 이들은 Apache Qpid을 이용하여 AMQP 프로토콜을 통해 메시지를 생성하고 수신하는 것을 보여준다.

더 많은 기능과 옵션에 대한 자세한 내용은 Apache Qpid의 공식 문서를 참조하시기 바랍니다.