上海网站seo排名,wordpress文章采集助手,wordpress 主题图片样式,做机电预算的网站文章目录 操作002#xff1a;HelloWorld一、目标二、具体操作1、创建Java工程①消息发送端#xff08;生产者#xff09;②消息接收端#xff08;消费者#xff09;③添加依赖 2、发送消息①Java代码②查看效果 3、接收消息①Java代码②控制台打印③查看后台管理界面 操作… 文章目录 操作002HelloWorld一、目标二、具体操作1、创建Java工程①消息发送端生产者②消息接收端消费者③添加依赖 2、发送消息①Java代码②查看效果 3、接收消息①Java代码②控制台打印③查看后台管理界面 操作002HelloWorld
一、目标
生产者发送消息消费者接收消息用最简单的方式实现
官网说明参见下面超链接
RabbitMQ tutorial - “Hello World!” — RabbitMQ 二、具体操作
1、创建Java工程
①消息发送端生产者 ②消息接收端消费者 ③添加依赖
dependenciesdependencygroupIdcom.rabbitmq/groupIdartifactIdamqp-client/artifactIdversion5.20.0/version/dependency
/dependencies2、发送消息
①Java代码
不用客气整个代码全部复制——当然连接信息改成你自己的
package com.atguigu.rabbitmq.simple; import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory; public class Producer { public static void main(String[] args) throws Exception { // 创建连接工厂 ConnectionFactory connectionFactory new ConnectionFactory(); // 设置主机地址 connectionFactory.setHost(192.168.200.100); // 设置连接端口号默认为 5672connectionFactory.setPort(5672);// 虚拟主机名称默认为 /connectionFactory.setVirtualHost(/);// 设置连接用户名默认为guest connectionFactory.setUsername(guest);// 设置连接密码默认为guest connectionFactory.setPassword(123456);// 创建连接 Connection connection connectionFactory.newConnection(); // 创建频道 Channel channel connection.createChannel(); // 声明创建队列 // queue 参数1队列名称 // durable 参数2是否定义持久化队列当 MQ 重启之后还在 // exclusive 参数3是否独占本次连接。若独占只能有一个消费者监听这个队列且 Connection 关闭时删除这个队列 // autoDelete 参数4是否在不使用的时候自动删除队列也就是在没有Consumer时自动删除 // arguments 参数5队列其它参数 channel.queueDeclare(simple_queue, true, false, false, null); // 要发送的信息 String message 你好小兔子; // 参数1交换机名称,如果没有指定则使用默认Default Exchange // 参数2路由key,简单模式可以传递队列名称 // 参数3配置信息 // 参数4消息内容 channel.basicPublish(, simple_queue, null, message.getBytes()); System.out.println(已发送消息 message); // 关闭资源 channel.close(); connection.close(); } }②查看效果 3、接收消息
①Java代码
不用客气整个代码全部复制——当然连接信息改成你自己的
package com.atguigu.rabbitmq.simple; import com.rabbitmq.client.*; import java.io.IOException; public class Consumer { public static void main(String[] args) throws Exception { // 1.创建连接工厂 ConnectionFactory factory new ConnectionFactory(); // 2. 设置参数 factory.setHost(192.168.200.100); factory.setPort(5672); factory.setVirtualHost(/); factory.setUsername(guest);factory.setPassword(123456); // 3. 创建连接 Connection Connection connection factory.newConnection(); // 4. 创建Channel Channel channel connection.createChannel(); // 5. 创建队列 // 如果没有一个名字叫simple_queue的队列则会创建该队列如果有则不会创建 // 参数1. queue队列名称 // 参数2. durable是否持久化。如果持久化则当MQ重启之后还在 // 参数3. exclusive是否独占。 // 参数4. autoDelete是否自动删除。当没有Consumer时自动删除掉 // 参数5. arguments其它参数。 channel.queueDeclare(simple_queue,true,false,false,null); // 接收消息 DefaultConsumer consumer new DefaultConsumer(channel){ // 回调方法,当收到消息后会自动执行该方法 // 参数1. consumerTag标识 // 参数2. envelope获取一些信息交换机路由key... // 参数3. properties配置信息 // 参数4. body数据 Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { System.out.println(consumerTagconsumerTag); System.out.println(Exchangeenvelope.getExchange()); System.out.println(RoutingKeyenvelope.getRoutingKey()); System.out.println(propertiesproperties); System.out.println(bodynew String(body)); } }; // 参数1. queue队列名称 // 参数2. autoAck是否自动确认类似咱们发短信发送成功会收到一个确认消息 // 参数3. callback回调对象 // 消费者类似一个监听程序主要是用来监听消息 channel.basicConsume(simple_queue,true,consumer); } }②控制台打印 consumerTagamq.ctag-8EB87GaZFP52LKSMcj98UA Exchange RoutingKeysimple_queue properties#contentHeader(content-typenull, content-encodingnull, headersnull, delivery-modenull, prioritynull, correlation-idnull, reply-tonull, expirationnull, message-idnull, timestampnull, typenull, user-idnull, app-idnull, cluster-idnull) body你好小兔子 ③查看后台管理界面
因为消息被消费掉了所以RabbitMQ服务器上没有了