본문 바로가기

개발 공부

RabbitMQ Recv Java

Recv class 에도 똑같이 Queue_name을 선언해 주고, 서버와의 연결을 만들어 준다.

private final static String QUEUE_NAME = "hello";

public static void main(String[] args) throws Exception {
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost("localhost");
    Connection connection = factory.newConnection();
    Channel channel = connection.createChannel();

다음 대기열을 선언한다.

channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println("[*] Waiting for messages, To exit press CTRL+C" +
        "[*] 메세지를 기다리는 중입니다. 종료하려면 CTRL+C를 누르십시오.");

다음 DeliverCallback Interface를 사용하여 메세지 데이터를 받을때 까지 버퍼링을 시켜주고, 받게된다면 byte문자열을 String의 형태로 받는다.

DeliverCallback deliverCallback = (consumerTag, delivery) -> {
    String message = new String(delivery.getBody(), StandardCharsets.UTF_8);
    System.out.println(" [X] Received '" + message + "'");
};
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
});

전체 코드:

package recv;

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

import java.nio.charset.StandardCharsets;

public class Recv {
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println("[*] Waiting for messages, To exit press CTRL+C" +
                "[*] 메세지를 기다리는 중입니다. 종료하려면 CTRL+C를 누르십시오.");

        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody(), StandardCharsets.UTF_8);
            System.out.println(" [X] Received '" + message + "'");
        };
        channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
        });
    }
}

'개발 공부' 카테고리의 다른 글

RabbitMQ 작업대기열(Work Queue) Java 2  (0) 2023.06.14
RabbitMQ 작업대기열(Work Queue) Java  (0) 2023.06.13
RabbitMQ Sendding Java  (0) 2023.06.13
RabbitMQ 사용해 보기 Java  (0) 2023.06.13
Selenium 과 Selenide  (0) 2023.06.08