您的位置:首页 > 财经 > 金融 > 一个app软件_上海建设工程信息服务平台_贵港网站seo_windows优化大师官方免费

一个app软件_上海建设工程信息服务平台_贵港网站seo_windows优化大师官方免费

2024/11/19 1:14:35 来源:https://blog.csdn.net/m0_51621836/article/details/142991144  浏览:    关键词:一个app软件_上海建设工程信息服务平台_贵港网站seo_windows优化大师官方免费
一个app软件_上海建设工程信息服务平台_贵港网站seo_windows优化大师官方免费

文章目录

  • 一、概念
  • 二、队列持久化
  • 三、消息持久化

本文参考:
尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件rabbitmq
RabbitMQ 详解
Centos7环境安装Erlang、RabbitMQ详细过程(配图)

一、概念

在RabbitMQ系列学习笔记(四)–消息应答机制中我们已经看到了如何处理任务不丢失的情况,即消息应答和失败重新入队机制。但是如何保障当RabbitMQ服务停掉以后消息生产者发送过来的消息不丢失。需要做两件事:将队列和消息都标记为持久化。

二、队列持久化

之前创建的队列都是非持久化的,rabbitmq如果重启的话,该队列就会被删除掉,如果要队列实现持久化 需要在声明队列的时候把durable参数设置为 true(持久化)。
image.png
但是需要注意的就是如果之前声明的这个队列不是持久化的,需要把原先队列先删除,或者重新创建一个不同名的持久化队列,不然就会出现错误。
image.png
以下为控制台中持久化与非持久化队列的UI显示区:蓝色的大写字母D表示该队列是持久化的。
image.png
这个时候即使重启rabbitmq队列也依然存在。

三、消息持久化

要想让消息实现持久化需要在消息生产者修改代码,添加MessageProperties.PERSISTENT_TEXT_PLAIN这个属性。
image.png
当设置为消息持久化后,消息不仅会保存在内存,还会持久化一份到磁盘中,即使故障重启,消息还在。
但是这种情况并不能保证数据一定不会丢失,假如一条消息刚准备存储到磁盘的时候,还没存储完,消息并未真正完全写入磁盘,出现了故障,仍然有可能会丢失消息。保障数据安全性还需要结合发布确认机制共同实现。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com