ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 使用java 发送单个消息的生产者,以及接收消息并将其打印出来的消费者。 发布者将连接到RabbitMQ,发送一条消息,然后退出。 ![](http://www.rabbitmq.com/img/tutorials/python-one.png =400x80) #### 1.添加maven的包 ``` <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.0.0</version> </dependency> ``` #### 2.编写生产者者代码 ``` 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"); 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("UTF-8")); System.out.println(" [x] Sent '" + message + "'"); // 关闭渠道和连接 channel.close(); connection.close(); } } ``` #### 3.编写消费者代码 ``` 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"); Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" [x] Received '" + message + "'"); } }; channel.basicConsume(QUEUE_NAME, true, consumer); } } ``` ### 启动顺序 消费者将通过RabbitMQ打印从发布者处获得的消息。消费者将继续运行,等待消息。 1. 先启动rabbirMq的服务器 2. 启动消费者 3. 启动生产者。 * * * * * #### rabbitMq服务器下载 [链接](http://www.rabbitmq.com/download.html) 登录`http://localhost:15672/#/`可以查看服务消费等信息。 账号密码:guest