RabbitMQ Hello模式入门指南
RabbitMQ是一个流行的开源消息代理软件,它实现了高级消息队列协议(AMQP)。在分布式系统中,RabbitMQ被广泛用于异步消息传递,以提高系统的可扩展性、可靠性和灵活性。本博客将通过一个简单的Hello模式示例,展示如何使用Java语言在RabbitMQ中发送和接收消息。
一、准备工作
在开始之前,请确保你已经安装了RabbitMQ服务器,并且它正在运行。你可以从RabbitMQ官网下载并安装。
你还需要在Java项目中包含RabbitMQ的Java客户端库。如果你使用Maven作为构建工具,可以在pom.xml
中添加以下依赖:
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.13.0</version> <!-- 请检查最新版本 -->
</dependency>
二、生产者(Producer)
生产者负责发送消息到RabbitMQ的队列。以下是使用Java编写的生产者示例:
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory; public class Send { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) { channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '" + message + "'"); } }
}
三、消费者(Consumer)
消费者负责从RabbitMQ的队列中接收并处理消息。以下是使用Java编写的消费者示例:
import com.rabbitmq.client.*; public class Recv { private final static String QUEUE_NAME = "hello"; public static void main(String[] argv) 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"); 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 -> { }); }
}
三、运行示例
-
启动RabbitMQ服务器:确保RabbitMQ服务正在运行。
-
编译Java程序:使用Java编译器(如javac)编译生产者和消费者程序。
-
运行消费者程序:首先,在命令行中运行消费者程序,让它等待接收消息。
-
运行生产者程序:然后,在另一个命令行窗口中运行生产者程序,发送一条消息。
-
观察结果:回到运行消费者程序的命令行窗口,你应该能看到它接收并打印了生产者发送的消息。
新时代农民工 (QQ:277718357) 点击关注下方 ↓ 微信公众号:程序进阶之路,了解更多技术知识。