Spring AMQP返回回调vs重试回调

时间:2015-05-04 15:36:28

标签: java spring spring-amqp

我想让我的应用程序能够适应向rabbitmq发送邮件时可能发生的连接问题。

,我希望获取所有未发送的消息,存储它们并将它们发送给后者。

查看官方documentation我没有设法找出返回回调和重试回调之间的区别。我知道当重试模板耗尽配置策略时会调用重试回调,但由于上下文不包含消息本身,因此不会发现这非常有用。 基于" replyCode"这是在" returnedMessage"中传递的ReturnCallback接口的方法可以很容易地确定进一步的行为,但是在调用这个回调时没有想到。

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

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

1 个答案:

答案 0 :(得分:1)

当代理返回消息时返回,因为它无法传递(在发布消息的交换机上没有匹配的绑定,并且设置了强制位)。

确认当经纪人向发布商发回确认时,表明消息已成功路由。

重试不在代理领域之内,因此很可能是您的用例所需。