镜像queue有master节点和slave节点。master和slave是针对⼀个queue⽽⾔的,⽽不是⼀个node作为 所有queue的master,其它node作为slave。⼀个queue第⼀次创建的node为它的master节点,其它node为slave节点。
⽆论客户端的请求打到master还是slave最终数据都是从master节点获取。当请求打到master节点时, master节点直接将消息返回给client,同时master节点会通过GM(Guaranteed Multicast)协议将queue的最新状态⼴播到slave节点。GM保证了⼴播消息的原⼦性,即要么都更新要么都不更新。
当请求打到slave节点时,slave节点需要将请求先重定向到master节点,master节点将将消息返回给client,同时master节点会通过GM协议将queue的最新状态⼴播到slave节点。
如果有新节点加⼊,RabbitMQ不会同步之前的历史数据,新节点只会复制该节点加⼊到集群之后新增的消息。
🔄 RabbitMQ镜像队列(Mirrored Queues)机制深度解析
从底层原理到生产配置,全面剖析RabbitMQ如何通过镜像队列实现高可用,并给出性能调优和故障处理的最佳实践。
1. 🏗️ 镜像队列核心架构
关键特性&#x