首页 > 解决方案 > RabbitMQ 铲子卡在“终止”状态

问题描述

我们有一个问题,有时,一个动态铲子(通过 HTTP API 创建:)/api/parameters/shovel/设置src-delete-afterqueue-length完成,然后没有被删除,而是卡在终止状态。

后续尝试通过以下任一方法删除铲子均不成功:

  1. 发布DELETE/api/parameters/shovel/
  2. rabbitmqctl delete_shovel
  3. rabbitmqctl clear_parameter -p <vhost> shovel <shovel_name>

铲子甚至没有出现在 RabbitMQ 管理 UI 的“铲子管理”部分中。

我们可以摆脱卡住的铲子的唯一方法是重新启动 RabbitMQ。

还有其他人有这个问题吗?如果是这样,我们如何在不重启集群的情况下清除铲子?另外,是否可以通过配置防止这种情况发生?

谢谢!

PS:

  1. RabbitMQ 版本:3.4.4
  2. 运行一个 2 节点集群(由于在网络分区的情况下我们可能面临的明显问题,很快将使其成为 3 节点集群)。

RabbitMQ 铲子卡在“终止”状态

标签: rabbitmqrabbitmq-shovel

解决方案


您使用的是非常非常旧的 RabbitMQ 版本。请升级到最新版本 ( 3.7.6) 并确保使用 Erlang 20.3.X(不是21)。如果您仍然可以重现此问题,请在rabbitmq-users邮件列表中报告。


推荐阅读