【问题标题】:The strange behavior of `delete-after` attribute of dynamic shovel动态铲子的`delete-after`属性的奇怪行为
【发布时间】:2020-09-14 05:04:56
【问题描述】:

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

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

注意:

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

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

【问题讨论】:

  • 在 RabbitMQ v3.8.3 中观察到,但在 RabbitMQ v3.7.x 中运行良好

标签: rabbitmq messagebroker rabbitmq-shovel


【解决方案1】:

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

感谢Michael

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多