Spring AMQP return 回调与重试回调

Spring AMQP return callback vs retry callback

我想让我的应用程序能够应对在向 rabbitmq 发送消息时可能发生的连接问题。我想获取所有未发送的消息,存储它们并在 rabbitmq 可用时稍后发送它们。

看了官方的documentation没弄清楚return回调和重试回调有什么区别。我知道当重试模板耗尽配置的策略时会调用重试回调,但由于上下文本身不包含消息,所以我觉得这没什么用。 基于在 ReturnCallback 接口的 "returnedMessage" 方法中传递的 "replyCode",可以轻松确定进一步的行为,但尚未弄清楚何时调用此回调。

一种方法是 ConfirmCallback,但存在一个问题,即使用额外的逻辑来使 CorrelationData 和消息以及这些消息的状态保持同步。

那么...除了 ConfirmCallback 接口之外,有没有更简单的方法来跟踪未使用 Spring AMQP 通过 RabbitMQ 成功发送的消息?

Returns 是代理 returns 一条消息,因为它无法传递(消息发布到的交换上没有匹配的绑定,并且设置了强制位)。

确认是指代理向发布者发回确认消息,表明消息已成功路由。

重试在代理领域之外,因此它可能是您的用例所需要的。