【问题标题】:rabbitmq cluster all down ,when first slave node,queue is state downrabbitmq集群全部关闭,当第一个从节点,队列状态关闭
【发布时间】:2016-08-24 07:29:32
【问题描述】:

我有 3 个节点,这种磁盘模式和“ha-mode is all”。 rabbitmq 3.6.4版

当我尝试停止所有节点时,首先我停止两个从节点,然后停止主节点。假设主节点坏了,无法启动。我用rabbitmqctl force_boot设置了一个从节点,发现队列状态为down。

我认为这是不对的。我认为从节点设置成为主节点,并且队列可用。不考虑消息是否丢失。

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

【问题讨论】:

标签: rabbitmq cluster-computing high-availability


【解决方案1】:

听起来您最终会使用不同步的从属服务器,并且默认情况下,RabbitMQ 将拒绝在受控的主服务器关闭时故障转移到未同步的从属服务器。

停止只有不同步的从属节点的主节点

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

如果您希望主节点在所有情况下都故障转移到未同步的从节点(即,您会选择队列的可用性而不是避免消息丢失),那么您可以将 ha-promote-on-shutdown 策略键设置为 always 而不是比它的默认值 when-synced。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2016-10-19
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    相关资源
    最近更新 更多