我在前端设置了一个带有一个装载机平衡器的2节点rabbitmq集群,在设置之后,它作为主动/主动模式工作,然后在一个节点上发生网络分区,我将故障节点从集群中取出再次将其重新加入群集,然后此失败的节点不会加入任何连接。
然后我试图将其他节点移出平衡器,恢复的节点开始接受连接,因此该集群处于主动/被动模式。
我不知道造成这种情况的原因,有没有办法将其改回主动/主动?在设置过程中指定其模式的步骤是什么?
提前感谢您的建议!
答案 0 :(得分:0)
rabbitmq真的(真的)不喜欢网络分区。默认情况下,当你有一个时,一切都会暂停。在这种情况下,您必须手动修复它。通过停止并启动它来选择失败者应该在重新加入群集后恢复所有内容。
如果这不起作用,则关闭失败的节点,并使用rabbitmqctl到" forget_cluster_node",然后将其重新加入群集。
你应该仔细阅读 https://www.rabbitmq.com/partitions.html 具体而言,"从网络分区中恢复"
然后更仔细地阅读接下来的几段。有一些自动恢复模式,每种模式都有优点和缺点。
在我的公司,我们选择了autoheal,因为我们重视可用性,并接受可能的消息丢失。