当前位置: 首页 > news >正文

襄阳旅游景点网站建设求购做网站

襄阳旅游景点网站建设,求购做网站,西安竞价托管,做创意小视频的网站在上一节中,我们使用docker部署了RabbitMQ,这一节我们将写一段生产者和消费者的代码。将用到rabbitmq的原生API来进行生产和发送消息。 一、准备工作 开始前,我们先在RabbitMQ控制台建相好关的数据 本机的RabbitMQ部署机器是192.168.56.201…

在上一节中,我们使用docker部署了RabbitMQ,这一节我们将写一段生产者和消费者的代码。将用到rabbitmq的原生API来进行生产和发送消息。

一、准备工作

开始前,我们先在RabbitMQ控制台建相好关的数据
本机的RabbitMQ部署机器是192.168.56.201
其中控制台的地址是
http://192.168.56.201:15672/
输入控制台的账号后,可以进入
1、我们先建好一个用户
用户名:hello,密码:world
在这里插入图片描述
2、再建Virtual Host:virtual01
在这里插入图片描述
3. 为User设置访问Virtual hosts权限
在这里插入图片描述
设置好后,hello用户就有virtual01的权限了
在这里插入图片描述

二、代码

先引入依赖,由于我们后续要用springboot来写生产者消费者代码,这里我们就直接引springboot的包了。如果只想用原生的客户端,可以引原生的包。

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency></dependencies>

生产者和消费者代码如下

public class RabbitMqSimpleTest {private static final String EXCHANGE_NAME = "hello_exchange";private static final String QUEUE_NAME = "hello_queue";private static final String ROUTING_KEY = "hello_routing";@Testpublic void send() throws IOException, TimeoutException {ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost("192.168.56.201");connectionFactory.setPort(5672);//5672是RabbitMQ的默认端口号connectionFactory.setUsername("hello");connectionFactory.setPassword("world");connectionFactory.setVirtualHost("virtual01");//获取TCP长连接Connection conn = connectionFactory.newConnection();//创建通信“通道”,相当于TCP中的虚拟连接Channel channel = conn.createChannel();//创建队列,声明并创建一个队列,如果队列已存在,则使用这个队列//第一个参数:队列名称ID//第二个参数:是否持久化,false对应不持久化数据,MQ停掉数据就会丢失//第三个参数:是否队列私有化,false则代表所有消费者都可以访问,true代表只有第一次拥有它的消费者才能一直使用,其他消费者不让访问//第四个:是否自动删除,false代表连接停掉后不自动删除掉这个队列//其他额外的参数, null//手动创建一个队列channel.queueDeclare(QUEUE_NAME, false, false, false, null);channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.TOPIC);channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY);//exchange 交换机//队列名称//额外的设置属性//最后一个参数是要传递的消息字节数组channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, (System.currentTimeMillis() + ",hello this is my first message!").getBytes());channel.close();conn.close();System.out.println("===发送成功===");}@Testpublic void consumer() throws IOException, TimeoutException {ConnectionFactory connectionFactory = new ConnectionFactory();connectionFactory.setHost("192.168.56.201");connectionFactory.setPort(5672);//5672是RabbitMQ的默认端口号connectionFactory.setUsername("hello");connectionFactory.setPassword("world");connectionFactory.setVirtualHost("virtual01");//获取TCP长连接Connection conn = connectionFactory.newConnection();//创建通信“通道”,相当于TCP中的虚拟连接Channel channel = conn.createChannel();//创建队列,声明并创建一个队列,如果队列已存在,则使用这个队列channel.queueDeclare(QUEUE_NAME, false, false, false, null);//从MQ服务器中获取数据//创建一个消息消费者//第一个参数:队列名//第二个参数代表是否自动确认收到消息,false代表手动编程来确认消息,这是MQ的推荐做法//第三个参数要传入DefaultConsumer的实现类channel.basicConsume(QUEUE_NAME, false, new Receiver(channel));}
}

消费者回调实现

public class Receiver extends DefaultConsumer {private Channel channel;//重写构造函数,Channel通道对象需要从外层传入,在handleDelivery中要用到public Receiver(Channel channel) {super(channel);this.channel = channel;}@Overridepublic void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body)throws IOException{String message = new String(body);System.out.println("消费者接收到的消息:"+message);System.out.println("消息的TagId:"+envelope.getDeliveryTag());//false只确认签收当前的消息,设置为true的时候则代表签收该消费者所有未签收的消息channel.basicAck(envelope.getDeliveryTag(), false);}
}

运行一下send发送消息,成功了。
去控制台后台看一下
队列成功创建好了
消息发送成功了,有一条待消费的消息在队列里面
在这里插入图片描述
可以在这里查看到刚才发送的消息内容
在这里插入图片描述
在这里可以看到queue和exchange的绑定关系
在这里插入图片描述
控制台还有很多有意思的功能,大家可以下来尝试一下。
同时启动消费者,也能成功消费
在这里插入图片描述

http://www.yayakq.cn/news/905626/

相关文章:

  • 模板建站代理电商网站建设的维护要多少钱
  • seo建站技巧seo网络推广招聘
  • 网站建设成本分析汕头建立网页公司
  • 中铁建设集团有限公司中标项目域名对seo的影响
  • 个人网站建设课程wordpress 图片模糊
  • 自己做网站卖东西ipad 网站开发工具
  • 网站建设通查询网站制作的常见布局
  • 网站建设任务执行书中国世界排名足球
  • 企业网站制作机构排名免费视频推广的软件有哪些
  • 中山古镇做网站的公司免费创建虚拟网站
  • 物流网站建设合同范本运行时间 wordpress
  • 网站建设合同电子版如何删除图标wordpress
  • 外贸公司的网站建设模板重庆网站备案规定
  • 全运网站的建设豆角网是哪个网站开发的
  • 都网站建设百度搜索引擎广告位的投放
  • 网站建设茶店网iis5.1建网站
  • 网站建设毕业答辩ppt怎么写鞍山吧台
  • 做货代网站阿芹网站建设
  • 做的好的营销型网站有哪些团购网站的发展
  • 石家庄做网站建设公司最好看的2019中文大全电影
  • 网站建设必须配置漯河网站建设兼职
  • 可以做编程题的网站网络架构有哪些
  • 下载网站php源码网络营销策划方案范文
  • 珠宝网站开发目的怎么制作自己的微信公众号
  • 网站运营推广的方法有哪些微信手机网站三合一
  • 顺德人做多上哪个网站电子商务网站建设要求
  • 做爰全过程免费费网站秀网站模板
  • 网站建设的思路网络是干什么的
  • 青岛网站建设优化汉寿做网站的公司
  • 高端网站设计新鸿儒seo公司排名