《RabbitMQ实战》5.集群并处理失败

一、集群架构

RabbitMQ始终会记录元数据:

  • 队列元数据:队列的名称及属性(持久化、自动删除)

  • 交换器元数据:交换器名称及属性(持久化)

  • 绑定元数据:消息路由绑定表

  • vhost元数据:vhost的队列、交换器、绑定关系及安全属性。

 

二、集群

        每个节点都会有完整的交换机与队列元数据,但是仅有一个节点有真正的队列及队列内容,发布消息时,其他节点需要将消息传递给拥有改队列的节点;消费消息亦是如此。

《RabbitMQ实战》5.集群并处理失败

 

三、镜像队列

        创建队列时,传入参数x-ha-policy为all,例如:queue.declare(queue=“test_q”,arguments={"x-ha-policy":"all”}),all将队列镜像到所有节点上;或者是这只为nodes,则需要执行以下节点 x-ha-policy-params:节点列表。

《RabbitMQ实战》5.集群并处理失败