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

园林网站模板下载电脑公司网站模板下载

园林网站模板下载,电脑公司网站模板下载,网上怎么找房屋设计师,襄城县住房和城市建设局网站1. 简介 在 RabbitMQ 的消息发送流程中,一共有三种消息丢失的情况: 生产者给 broker 发送的消息,broker 没有收到broker 将消息丢失broker 给消费者发送消息时消息丢失 对于第一种情况,我们可以使用 RabbitMQ 提供的发布确认模…

1. 简介

在 RabbitMQ 的消息发送流程中,一共有三种消息丢失的情况:

  1. 生产者给 broker 发送的消息,broker 没有收到
  2. broker 将消息丢失
  3. broker 给消费者发送消息时消息丢失

对于第一种情况,我们可以使用 RabbitMQ 提供的发布确认模式;

对于第三种情况,我们可以使用 RabbitMQ 的发布确认特性;

对于第二种情况,我们可以使用 RabbitMQ 的持久化特性。

2. 什么是持久化特性

RabbitMQ 的持久化表示的是资源存储在硬盘中,当 RabbitMQ 服务器重启后,设置为持久化的资源不会被释放,除非手动删除,不然不会丢失。

RabbitMQ 的持久化特性分为:

  • 交换机持久化
  • 队列持久化
  • 消息持久化

3. 交换机持久化

在 spring 中,我们声明交换机时,可以为交换机指定是否持久化。

声明持久化交换机:

    //写法一  @Bean("persExchange")public DirectExchange persExchange() {return ExchangeBuilder.directExchange(Constants.PRES_EXCHANGE).build();}//写法二@Bean("persExchange")public DirectExchange persExchange() {return ExchangeBuilder.directExchange(Constants.PRES_EXCHANGE).durable(true).build();}

在写法一中,没有指定 durable 参数,那么默认就会声明一个持久化交换机。

声明非持久化交换机:

    @Bean("notPersExchange")public DirectExchange notPersExchange() {return ExchangeBuilder.directExchange(Constants.NOT_PERS_EXCHANGE).durable(false).build();}

将 durable 参数设置为 false,就会声明一个非持久化交换机。

4. 队列持久化

我们也可以为队列指定是否持久化。

声明持久化队列:

    @Bean("persQueue")public Queue persQueue() {return QueueBuilder.durable(Constants.PERS_QUEUE).build();}

调用 durable 方法即可声明一个持久化队列。

声明非持久化队列:

    @Bean("notPersQueue")public Queue notPersQueue() {return QueueBuilder.nonDurable(Constants.NOT_PERS_QUEUE).build();}

调用 nonDurable 方法即可声明一个持久化队列。

5. 消息持久化

生产者在发送消息时,可以指定该消息是否持久化。

发送持久化消息:

    @RequestMapping("/pres")public String pers() {String messageInfo = "pres message";Message message = new Message(messageInfo.getBytes(StandardCharsets.UTF_8),new MessageProperties());//设置消息持久化message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);rabbitTemplate.convertAndSend(Constants.PRES_EXCHANGE, Constants.PERS_ROUTINGKEY, message);return "持久化消息发送成功";}

MessageDeliveryMode 提供了两个参数,分别为 PERSISTENT 和 NON_PERSISTENT,表示持久化和非持久化。

发送非持久化消息:

    @RequestMapping("/nPres")public String nPers() {String messageInfo = "nPres message";Message message = new Message(messageInfo.getBytes(StandardCharsets.UTF_8),new MessageProperties());//设置消息非持久化message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT);rabbitTemplate.convertAndSend(Constants.NOT_PERS_EXCHANGE, Constants.PERS_ROUTINGKEY, message);return "非持久化消息发送成功";}

6. 交换机、队列、消息三者之间持久化的影响

  • 当交换机为持久化时,重启服务器,交换机依然存在
  • 当交换机为非持久化时,重启服务器,交换机不存在
  • 当队列为持久化、队列中的消息为持久化时,重启服务器,队列依然存在,队列中的消息依然存在
  • 当队列为持久化、队列中的消息为非持久化时,重启服务器,队列依然存在,队列中的消息不存在
  • 当队列为非持久化、队列中的消息为持久化时,重启服务器,队列不存在,队列中的消息不存在
  • 当队列为非持久化、队列中的消息为非持久化时,重启服务器,队列不存在,队列中的消息不存在
http://www.dtcms.com/wzjs/811284.html

相关文章:

  • 湛江免费企业建站网站制作公司浩森宇特
  • 工程建设标准网官方网站上传网站图片不显示
  • 禅城容桂网站制作湖南seo优化企业
  • 有没有专门做蛋糕的网站百度给做网站吗
  • 佛山做网站哪家公司好如何高效建设品牌网站
  • 宜昌市住房和城乡建设厅官方网站ip查询地址精准地图
  • 有哪些漫画做的好的网站好3d效果图设计制作软件
  • 网站开发用什么语言比较好网站登陆界面怎么做
  • 二手交易网站开发技术路线网站建设确认报告
  • wordpress 修改站点给人做logo的网站
  • 长沙网站排名优化报价团购网站APP怎么做
  • 18+网站推广刚注册在域名可以自己做网站吗
  • 免费flash素材网站网站建设使用多语言
  • 黑河城乡建设局网站网络加速器免费永久版
  • 网站建设|深圳12个区排名
  • 网站运营配置企业微网站
  • 网站设计人员wordpress大前端dux3.0
  • dedecms 网站首页塘下建设银行网站
  • 面包店网站建设论文wordpress近期文章图片
  • DZ做的网站平面设计哪里学
  • 南宁百度网站公司吗制作二维码免费软件
  • h5手机网站建设哪家好建设部一建注册公示网站
  • 网站内容发布平台源码网站名称价格
  • 网站里的轮廓图 怎么做的生物网站模板
  • 怎么分辨网站是不是h5建网站培训机构
  • 建设假网站照片网站cms
  • 免费网站注册平台网站控制面板 地址
  • 网站建设同步视频网站排名优化培训
  • 提供提供手机网站建设微信分享的h5网站开发
  • 域名租赁网站手机网站 搜索优化 百度