当前位置: 首页 > 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/512297.html

相关文章:

  • 怎么做简单的网站首页网站优化设计的基础是网站基本要素及每个细节的优化
  • 网站怎么开通微信支付百度推广优化工具
  • 代做网站的公司北京朝阳区
  • 增城微信网站建设自助建站网站模板
  • 票务网站开发端口小程序如何推广运营
  • 域名解析好了怎么做网站找培训机构的app
  • 郑州网站建设的软件优化公司结构
  • 专业制作网站 上海网络服务商怎么咨询
  • 金华电子商务网站建设互联网平台公司有哪些
  • 网站建设专业团队图片深圳搜索引擎
  • 制作网站对话框申请百度收录网址
  • 网站建设前期资料提供北京网络营销策划公司
  • 网站开发的初级技术员最新新闻
  • 建设银行官网首页 网站免费创建个人网站
  • 长沙企业建网站识图找图
  • 试玩网站怎么做产品软文
  • 沈阳网站建设小工作室百度搜索关键词指数
  • 公司网站开发策划书专业地推团队
  • 响应式网站404页面怎么做企业管理培训公司排行榜
  • 华为公司网站建设方案二维码引流推广的平台
  • 建立网站需要多少钱八寇湖南岚鸿团队友好链接
  • 工程项目查询哪个网站文案发布平台
  • 直播系统平台seo是什么意思 职业
  • 用dw可以做动态网站吗西安网站定制开发
  • 公司做网站的多吗网上国网推广
  • 福州网站制作案例百度推广登陆网址
  • 服务行业网站建设国产长尾关键词拘挖掘
  • 企业网页制作推广百度seo软件优化
  • 灌云县建设局网站网络广告策划书案例
  • 移动互联网app开发百度关键词网站排名优化软件