queue队列持久化RabbitMQ的持久化

RabbitMQ的持久化主要体现在三个方面,搜索,索引管理和集群管理分别在$client-indices()和$client-cluster()中。$client 对象下的所有核心方法(索引,获取等)都是可用的。即交换机持久化,队列持久化及消息持久化你也注意到了客户端的参数配置从某种程度上讲也是方便你的IDE易于搜索。

消息的持久化与交换机持久化与队列持久化有所不同,消息的持久化在于创建消息的时候,加一个持久化消息的属性,创建消息的方法是new AMQPMessage($data,$properties),其中$properties是个数组,里面可以设置对消息的各种属性,如持久化,优先级等属性。持久化的key值为delivery_mode,当delivery_mode为1时表示消息不持久化,为2时则表示消息持久化,且把消息存在磁盘里

交换机的持久化其实就是相当于将交换机的属性在服务器内部保存,当MQ的服务器发生意外或关闭之后,重启RabbitMQ时不需要重新手动或执行代码去建立交换机,交换机会自动建立,相当于一直存在。

队列持久化类似于交换机持久化,创建队列方法queue_declare中也有一个参数是$durable,也代表着RabbitMQ服务器重启时,是否自动创建队列,图中参数注释与方法中的参数(除队列名外)顺序一一对应

众所周知,RabbitMQ的消息是依附于队列存在的,所以想要消息持久化,那么前提是队列也要持久化。