rabbit会始终记录以下四种类型的内部元数据
队列元数据-------队列名称和它们的属性(是否可持久化,是否自动删除等)
交换器元数据----交换器名称、烈性和属性(可持久化等)
绑定元数据--------一张简单的表格展示了如何将消息路由到队列
vhost 元数据------为vhost内的队列、交换器和绑定提供命名空间和安全属性
一、几个概念认知
1.1 内存节点和磁盘节点:
内存节点:就是RAM节点,数据都放在内存上,rabbit重启会丢失集群的相关信息。
磁盘节点:就是讲集群的相关信息(队列元数据,交换器元数据,vhost元数据等放到次哦盘上),集群至少有一个磁盘节点,原因是rabbit重启之后至少可以恢复相关队列和交换器数据。
1.2 集群上的队列和交换器信息存储
集群上的单一个节点会存储属于该节点的所有信息(队列内容,元数据,交换器等),注意的是该队列的内容只存储在改单一节点,别的节点只存储该队列的元数据也不会存储该节点的内容,这是rabbit设计之初决定的,为什么呢?因为如果将队列的内容拷贝到别的节点会造成性能和空间的消耗,所以别的节点之存储队列的元数据。
集群的所有节点都会存储交换器的数据。