在 Mule ESB 中使用和不使用 REQUEUE 行为的 AMQP 恢复消息

AMQP Recover Message with and without REQUEUE behaviour in Mule ESB

我正在使用 AMQP 端点,如果我正在使用 AMQP 恢复重试的消息使用者。我的查询是

Mule 在 AMQP Recover 中给出了 Requeue = true 或 Requeue = false 的选项。但是在兔子文档中,他们强烈表示不支持使用 Requeue=false 进行恢复 http://www.rabbitmq.com/specification.html。任何人都可以解释一下在 Mule 中使用和不使用重新排队选项会发生什么。

我也尝试过使用和不使用重新排队的 AMQP 恢复 option.Put 入站队列中的一条消息并进行了测试

1.Recover 单独启用重新排队选项 - 如果消费者关闭,它会尝试按预期重试。但是一旦消费者服务启动。有 2 条消息被命中(而不是单次命中)。不确定为什么?

2.Recover 单独没有启用重新排队选项 - 正如预期的那样,它会在服务启动时尝试重试。一条消息被命中(正确)。

所以我想在不重新排队的情况下使用恢复-其他时候我也遇到异常,因为重新排队设置为 false

  caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: {#method<connection.close>(reply-code=540, reply-text=NOT_IMPLEMENTED - requeue=false, class-id=60, method-id=110), null, ""}.

这是因为我保留了reply-text=NOT_IMPLEMENTED - requeue=false。如果是这样的话,为什么 Mule 会重新排队 Optional。我很困惑。谁能帮我清理一下意见。

这是 Mule 的 AMQP 传输,而不是 RabbitMQ 特定传输。

因此您必须检查您正在使用的 AMQP 功能是否在您正在使用的特定 AMQP 代理中可用。