[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의 공식 문서를 참조하시기 바랍니다.