《RabbitMQ实战》5.集群并处理失败
一、集群架构
RabbitMQ始终会记录元数据:
-
队列元数据:队列的名称及属性(持久化、自动删除)
-
交换器元数据:交换器名称及属性(持久化)
-
绑定元数据:消息路由绑定表
-
vhost元数据:vhost的队列、交换器、绑定关系及安全属性。
二、集群
每个节点都会有完整的交换机与队列元数据,但是仅有一个节点有真正的队列及队列内容,发布消息时,其他节点需要将消息传递给拥有改队列的节点;消费消息亦是如此。
三、镜像队列
创建队列时,传入参数x-ha-policy为all,例如:queue.declare(queue=“test_q”,arguments={"x-ha-policy":"all”}),all将队列镜像到所有节点上;或者是这只为nodes,则需要执行以下节点 x-ha-policy-params:节点列表。