1

作为更大用例的一部分,我正在探索将消息从源移动到临时队列的铲子插件。我正在为每个队列创建动态铲子,以将消息移动到临时队列并使用属性"delete-after": "queue-length"删除动态铲子。我在 RabbitMQ 管理控制台(Admin->Shovel status)中看到动态铲子已成功删除,但源/临时队列的状态正在运行。

但问题是,当新消息进入源队列时,即使源队列没有消费者,它们也会自动移动到临时队列。

笔记:

  1. 源队列和临时队列都是持久的。
  2. 消息是持久的(传递模式:2)
  3. 由于有数百个队列,上述操作是并行执行的。我正在为每个队列创建动态铲子并删除它们。

删除动态铲后的队列状态 虽然我使用 DELETE HTTP API 而不是上述方法来删除动态铲子,但它运行良好。我想避免进行额外的 HTTP 调用,因为源队列有数百个。

4

1 回答 1

0

delete-after属性已被弃用并用src-delete-after重命名。RMQ v3.7.x 支持 delete-after 属性,但在 v3.8.x 中被删除(最多 3 个)。然后它在 v3.8.4 中被带回来

https://github.com/rabbitmq/rabbitmq-shovel/issues/72

感谢迈克尔

于 2020-06-03T14:07:42.597 回答