如何重置rabbitmq节点以摆脱启用的功能标志

ali*_*imi 5 rabbitmq messagebroker

这是在集群中的节点重新启动后发生的。它抱怨不兼容的功能标志并停止。该文档表示,一旦启用功能标志,就无法禁用。集群中唯一的其他正在运行的节点禁用了该标志 ( user_limit),一旦这个新启动的节点完成与对等节点的表同步,它就会在日志中显示:

Application mnesia exited with reason: stopped

BOOT FAILED
===========
Error during startup: {error,
                          {incompatible_feature_flags,
                              {not_active,
                                  "All replicas on diskfull nodes are not active yet",
                                  rabbit_user,
                                  [rabbit@rabbitmq3]}}}
Run Code Online (Sandbox Code Playgroud)

我还尝试杀死与rabbit服务器相关的所有进程(包括erlang进程)并rabbit@rabbitmq1-feature_flags在启动前进行编辑,但它被覆盖并且没有成功。我不喜欢在正在运行的节点上启用user_limit功能标志,并无论如何在该节点上删除它。如何重置此节点(例如通过删除mnesia目录或其他方式)以忘记其已启用的标志,然后再次将其加入集群。

PS:rabbit@rabbitmq3 也是集群中另一个已关闭且没有造成任何损害的节点。

Mic*_*age 11

如果您使用brew来运行rabbit并且不关心您的状态,则运行以下命令:

brew services stop rabbitmq
brew uninstall rabbitmq
rm -rf /usr/local/var/lib/rabbitmq
rm -rf /usr/local/var/log/rabbitmq
rm -rf /usr/local/etc/rabbitmq
brew install rabbitmq
brew services start rabbitmq
Run Code Online (Sandbox Code Playgroud)


Anj*_*tam 6

适用于带有自制软件的 MacOS Apple 芯片

brew services stop rabbitmq
brew uninstall rabbitmq

rm -r /opt/homebrew/etc/rabbitmq                
rm -r /opt/homebrew/var/lib/rabbitmq
rm -r /opt/homebrew/var/log/rabbitmq

brew update
brew install rabbitmq
brew services start rabbitmq
Run Code Online (Sandbox Code Playgroud)

查看我遇到的错误日志

MacOS 英特尔芯片的答案


ali*_*imi 0

我不知道其他情况,但就我而言,罪魁祸首是另一个故障节点(rabbit@rabbitmq3)。我不知道如何,但尽管rabbit@rabbitmq3-feature_flags说user_limit未启用,但在我在rabbitmqctl forget_cluster_node rabbit@rabbitmq3正在运行的节点上运行并启动其他节点后,它成功并启动了,并且集群也正常。