rabbitmq cluster all down,当第一个slave节点,队列状态为down时

时间:2016-08-24 07:29:33

标签: rabbitmq cluster-computing high-availability

我有3个节点这种光盘模式和" ha模式全部"。 rabbitmq版本3.6.4

当我尝试停止所有节点时,首先我停止两个从节点,结束停止主节点。假设主节点已损坏且无法启动。我使用rabbitmqctl force_boot设置一个从节点,我发现队列状态已关闭。

我不认为这是对的。我认为从节点设置成为主节点,队列可用。不要考虑邮件是否丢失。

但是,首先停止主节点,然后停止新的主节点,结束最后一个节点。我可以 rabbitmqctl force_boot设置任何节点。任何节点都可用。

1 个答案:

答案 0 :(得分:0)

听起来你最终会遇到不同步的从站,默认情况下,RabbitMQ会拒绝在受控主站关闭时故障转移到非同步从站。

  

仅使用非同步从属停止主节点

     

当您关闭主节点时,所有可用从站都可能不同步。可能发生这种情况的常见情况是滚动集群升级。默认情况下,RabbitMQ将拒绝故障转移到受控主关闭(即显式停止RabbitMQ服务或关闭操作系统)的非同步从站,以避免消息丢失;相反,整个队列将关闭,就好像未同步的从属设备不存在一样。不受控制的主关闭(即服务器或节点崩溃或网络中断)仍将触发故障转移,甚至是非同步的从属设备。

     

如果您希望主节点在所有情况下都故障转移到非同步从站(即您可以选择队列的可用性而不是消除丢失消息),那么您可以将ha-promote-on-shutdown策略密钥设置为始终而不是其默认值when-synced。

https://www.rabbitmq.com/ha.html