java集成RabbitMQ实例

以下是一个简单的 Java 应用程序实例,用于集成 RabbitMQ。该示例展示了如何使用 RabbitMQ 的 Java 客户端库发送和接收消息。

准备工作

  1. 安装 RabbitMQ: 确保 RabbitMQ 已经安装并正在运行。

添加依赖: 如果使用 Maven,在 pom.xml 文件中添加 RabbitMQ 客户端依赖。


    com.rabbitmq
    amqp-client
    5.17.0

代码示例

1. 发送消息 (Producer)
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

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

    public static void main(String[] argv) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost"); // RabbitMQ 服务器地址
        factory.setUsername("guest");
        factory.setPassword("guest");

        try (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());
            System.out.println(" [x] Sent '" + message + "'");
        }
    }
}

2. 接收消息 (Consumer)

import com.rabbitmq.client.*;

import java.io.IOException;

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

    public static void main(String[] argv) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost"); // RabbitMQ 服务器地址
        factory.setUsername("guest");
        factory.setPassword("guest");

        try (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");

            // 定义消息处理的回调
            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
                String message = new String(delivery.getBody(), "UTF-8");
                System.out.println(" [x] Received '" + message + "'");
            };
            // 开始消费
            channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
            });
        }
    }
}

运行步骤

  1. 启动 RabbitMQ 服务。
  2. 运行 Producer 代码,发送消息。

运行 Consumer 代码,接收并打印消息。

说明

  1. 队列声明: channel.queueDeclare() 确保队列存在。如果队列不存在,会自动创建。
  2. 消息属性: 本示例中未设置消息属性,可以根据需要进行扩展。
  3. 自动确认: 消费者使用 autoAck=true 自动确认消息。可改为手动确认处理更复杂的场景

通过该实例,可以理解 Java 如何集成 RabbitMQ 实现基本的消息发送和接收功能。

你可能感兴趣的:(java-rabbitmq,java,rabbitmq)