[java] ActiveMQ와 RabbitMQ의 기본적인 메시지 전송 방법

목차

ActiveMQ란?

ActiveMQ는 Apache Software Foundation에서 개발된 오픈 소스 메시지 브로커입니다. 메시지 브로커는 메시지의 송수신을 관리하고 전달하는 역할을 합니다. ActiveMQ는 JMS(Java Message Service)를 지원하며, 안정적이고 효율적인 메시지 전송을 제공합니다.

ActiveMQ로 메시지 전송하기

다음은 ActiveMQ를 사용하여 메시지를 전송하는 기본적인 방법입니다.

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

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

            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

            Destination destination = session.createQueue("myQueue");
            MessageProducer producer = session.createProducer(destination);

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

            session.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제는 ActiveMQ를 사용하여 “Hello, ActiveMQ!”라는 메시지를 myQueue라는 큐에 전송하는 코드입니다. ActiveMQ의 접속 URL과 큐 이름을 설정하고, 메시지를 생성하여 전송하는 방식입니다.

RabbitMQ란?

RabbitMQ는 메시지 브로커로서, AMQP(Advanced Message Queuing Protocol)를 기반으로 한 오픈 소스 프로젝트입니다. RabbitMQ는 안정적인 메시지 전송과 큐 관리를 위한 다양한 기능을 제공합니다.

RabbitMQ로 메시지 전송하기

다음은 RabbitMQ를 사용하여 메시지를 전송하는 기본적인 방법입니다.

import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.ConnectionFactory;

public class MessageSender {
    private static final String QUEUE_NAME = "myQueue";

    public static void main(String[] args) {
        try {
            ConnectionFactory factory = new ConnectionFactory();
            factory.setHost("localhost");

            Connection connection = factory.newConnection();
            Channel channel = connection.createChannel();

            channel.queueDeclare(QUEUE_NAME, false, false, false, null);

            String message = "Hello, RabbitMQ!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());

            channel.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 예제는 RabbitMQ를 사용하여 “Hello, RabbitMQ!”라는 메시지를 myQueue라는 큐에 전송하는 코드입니다. RabbitMQ의 접속 호스트와 큐 이름을 설정하고, 메시지를 생성하여 전송하는 방식입니다.

참고자료