我有3个节点这种光盘模式和" ha模式全部"。 rabbitmq版本3.6.4
当我尝试停止所有节点时,首先我停止两个从节点,结束停止主节点。假设主节点已损坏且无法启动。我使用rabbitmqctl force_boot
设置一个从节点,我发现队列状态已关闭。
我不认为这是对的。我认为从节点设置成为主节点,队列可用。不要考虑邮件是否丢失。
但是,首先停止主节点,然后停止新的主节点,结束最后一个节点。我可以
rabbitmqctl force_boot
设置任何节点。任何节点都可用。
答案 0 :(得分:0)
听起来你最终会遇到不同步的从站,默认情况下,RabbitMQ会拒绝在受控主站关闭时故障转移到非同步从站。
仅使用非同步从属停止主节点
当您关闭主节点时,所有可用从站都可能不同步。可能发生这种情况的常见情况是滚动集群升级。默认情况下,RabbitMQ将拒绝故障转移到受控主关闭(即显式停止RabbitMQ服务或关闭操作系统)的非同步从站,以避免消息丢失;相反,整个队列将关闭,就好像未同步的从属设备不存在一样。不受控制的主关闭(即服务器或节点崩溃或网络中断)仍将触发故障转移,甚至是非同步的从属设备。
如果您希望主节点在所有情况下都故障转移到非同步从站(即您可以选择队列的可用性而不是消除丢失消息),那么您可以将ha-promote-on-shutdown策略密钥设置为始终而不是其默认值when-synced。