我们正在探索"min-masters“策略,当我们创建新的队列时,它看起来工作正常,但是当由于某种原因我们需要停止集群的一个节点时,该节点上存在的每个队列都会被提升(主)到同一个节点,例如:
节点A有30个队列节点B有0个队列节点C有2个队列节点D有3个队列
当我们停止节点A时,所有30个队列都被提升到节点B,这是预期的结果吗?.我们希望这30个队列将分布在节点B、C和D上.
拜托,我们已经开始为这个疯狂了。每个人都经历过这种情况吗?当以某种自动的方式关闭节点A时,是否有可能实现我们所期望的情况?
我们的政策定义如下:
正在列出策略... prod ha queues ^ {“ha-mode”:“exactly”,“ha-params”:3,“ha-sync-mode”:“automatic”,“master-master-locator”:“min-masters”}
集群中有4个节点,2个RAM节点和2个磁盘节点。
当我们创建新队列时,该策略工作正常,但当我们停止一个节点时,它什么也不做。
谢谢
2条答案
按热度按时间yk9xbfzb1#
根据官方文件:
如果主服务器出现故障[.],则运行时间最长的镜像服务器将升级为主服务器
原因如下:
假设它最有可能与主设备完全同步。
https://www.rabbitmq.com/ha.html
vm0i2vca2#
我刚刚使用
3.6.13
的最新预发布代码尝试了您的特定场景,我可以重现它。问题是RabbitMQ不会移动现有的队列主机来重新平衡队列-它只会移动主机位于宕机节点上的队列。我已经打开了this issue来解决你在这里报告的问题。您可以使用this unsupported script来重新平衡集群中的队列主机。如果你在运行脚本时有问题,请发到
rabbitmq-users
,我会看到的。