没有设置镜像策略的 HA RabbitMQ
Posted
技术标签:
【中文标题】没有设置镜像策略的 HA RabbitMQ【英文标题】:HA RabbitMQ without set mirror policy 【发布时间】:2016-03-31 08:50:33 【问题描述】:我使用集群和镜像队列为rabbitmq建立了关于ha的实验室。 我正在使用 centos 7 和 rabbitmq-server 3.3.5。三台服务器(ha1、ha2、ha3)。
我刚刚将ha1和ha2加入了ha3,但没有为镜像队列设置策略。当我在 ha1 服务器上测试创建名为“hello”的队列时,在我使用 rabbitmqctl list queue 检查 ha2 和 ha3 后,集群上的所有节点上都存在 hello 队列。
我有一个问题,为什么我没有在集群上设置镜像队列的策略,但在集群上的任何节点上都创建了自动镜像队列?
如果我有错误或只加入集群上的节点,请给我建议,队列将在集群的所有节点上镜像。谢谢
【问题讨论】:
【参考方案1】:在 rabbitmq 中,默认情况下,一个队列只存储到一个节点。创建集群时,队列可跨节点使用。
但这并不意味着队列是镜像的,如果节点宕机了,则队列被标记为宕机,你无法访问。
假设给节点创建一个队列,队列会一直工作到节点up,如:
如果节点关闭,您将拥有:
您应该始终应用镜像策略,否则您可能会丢失消息
【讨论】:
是的,谢谢亲。当创建队列的主集群关闭时,我忘记了测试。当 master 的队列集群关闭时,队列将在所有集群上被删除 不客气,我建议更新到版本3.6.1
你正在使用旧版本。如果您认为答案正确,请采纳。 @SơnLâm以上是关于没有设置镜像策略的 HA RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章