RabbitMQ 经典镜像队列
1. What’s Queue Mirroring
-
镜像队列机制可以将队列镜像到集群中的其他Broker节点之上。
-
一般来说,RabbitMQ中一个队列的内容保存在其声明的节点中。交换器和绑定起保存在所有的节点中。
-
一个镜像队列由一个主队列和许多镜像队列组成,主队列通常所在的节点通常被认作主节点。每个队列都有自己的主节点。对一个镜像队列的操作会首先作用在其主节点,后传播到其镜像上。
-
镜像队列只能用于集群的节点之间,不推荐在广域网上使用。
-
消息会先发送到主队列,之后复制到其他队列上面。消费者无论连接哪一个节点,都会先消费主节点上的消息,镜像队列会丢弃已经被确认的消息。队列镜像机制强化了可用性,但没用在节点间分配负载、没有负载均衡机制。
-
主队列节点挂掉以后,资历最老的镜像在同步完成后装配提升为主队列,
2. How Mirroring is Configured
-
镜像队列使用policy进行配置。policy通过正则表达式匹配一个或多个队列,其包含一个可以被加到整个匹配队列属性上的定义。
-
和操控镜像相关的队列参数
-
ha-mode
-
ha-params
-
ha-sync-mode 可选automatic或mannual
- 将新节点加入已存在的镜像队列,默认情况下h
-