RabbitMQ持久化消息

RabbitMQ持久化消息

RabbitMQ实现持久化消息需满足以下3个条件:

  1. delivery_mode=2
  2. 使用durable=True声明exchange是持久化
  3. 使用durable=True声明queue是持久化

delivery_mode

delivery_mode=2指明message为持久的.
delivery_mode 投递消息模式
1 . ram
2 . disc
设置为disc后能从AMQP服务器崩溃中恢复消息--持久化

但效率比 ram:disc = 3:1

durable

durable (默认false)
rabbitmq重启后queue和Exchange会被清除,包括数据。

注:

auto_delete: 当所有消费客户端连接断开后,自动删除队列。
exclusive: 仅创建者可以使用的私有队列,断开后自动删除。

RabbitMQ会自动删除这个队列,而不管这个队列是否被声明成持久性的(Durable =true)。
也就是说即使客户端程序将一个排他性的队列声明成了Durable的,只要调用了连接的Close方法或者客户端程序退出了,RabbitMQ都会删除这个队列。
注意这里是连接断开的时候,而不是通道断开。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源 RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。支持消息的持久化、事务、拥塞控...
    jiangmo阅读 10,426评论 2 34
  • 什么叫消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂...
    lijun_m阅读 1,376评论 0 1
  • AMQP大致内容就是,将消息和队列绑定起来,规定让进入到交换机中的具有某个路由键的消息进入到指定队列中去。 Rab...
    StevenMD阅读 1,923评论 0 3
  • RabbitMQ详解 本文地址:http://www.host900.com/index.php/articles...
    嘉加家佳七阅读 2,558评论 0 9
  • 关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时...
    预流阅读 585,629评论 51 786