MQ的持久化分为三个部分:
一、Exchange(交换机持久化)
MQ做为消息中间件,主要用在程序间通信。使用spring集成rabbitmq后,在xml配置文件,可以很方便的设置是否持久化,代码如下:
其中 durable=true表示持久化,默认就是true,不配置这个参数也一样。
二、queue(队列持久化)
----2017.11.13日 补充持久化工作机制
让我们再来看一下持久化是如何工作的?
Rabbitmq会记录四种类型的内部元数据:
队列元数据:队列名称、属性(是否持久化、是否自动删除)
交换机元数据:交换机名称、类型(direct、fanout、topic)、属性(是否持久化)
绑定元数据:一张记录了交换机和队列绑定关系,和路由规则的表格
vhost元数据:为vhost内的队列、交换机和绑定提供命名空间和安全属性
上面的元数据默认保存在内存中,当我们把queue和Exchange设置成持久化后,将会保存到磁盘上,Rabbitmq重启后读取以上元数据,自动创建并绑定到一起。
文件存储位置:
rabbitmq_server-3.6.10/var/lib/rabbitmq/mnesia/rabbit@localhost
Rabbitmq目录下面的var文件夹,localhost是的主机名,mnesia是内建在Erlang的非SQL型数据库。