RabbitMQ - 无法删除队列

11

我们遇到了网络分区,导致RabbitMQ出现了"脑裂"。

在集群恢复后,我有一个无法删除的队列。在管理界面中,该队列仅以“?”列出,我无法从管理界面或命令行中删除它。

我尝试从集群中删除节点“sh-mq-cl1a-04”,但队列仍然存在于集群中。


尝试删除队列时日志中是否有任何错误消息?我认为最好在此处联系我们https://groups.google.com/forum/#!forum/rabbitmq-users。 - old_sound
1
没有任何提示 - 命令会一直挂起,直到我杀掉进程。 - Kristian Jensen
你找到解决方案了吗?我也遇到了类似的问题。 - PankajChandankar
1个回答

9
我遇到了一个类似的问题,无法删除一些队列。这里提供的解决方案对我有用:https://community.pivotal.io/s/article/Queue-cant-be-deleted-or-purged-in-RabbitMQ
我通过ssh连接到集群中的一个节点(最好是托管队列的节点),以root身份运行以下命令:
rabbitmqctl eval '{ok, Q} = rabbit_amqqueue:lookup(rabbit_misc:r(<<"VHOST">>, queue, <<"QUEUE">>)), rabbit_amqqueue:delete_crashed(Q).'

您需要将 VHOST 替换为您的虚拟主机名称,将 QUEUE 替换为您的队列名称(我意识到在您的情况下可能会有些棘手)。


1
这是一个很好的观点,谢谢提醒!我会更新我的答案。 - Steve K
我的看法是:我也连接到了Pod并运行了以下命令: rabbitmqctl delete_queue <queue:name> 这个命令比较简单。 - Nicolas Nobelis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接