使用Spring AMQP确认交付

时间:2015-06-18 11:36:43

标签: spring-amqp

我们以Spring Remoting with AMQP的风格使用Spring AMQP。我在每封邮件上设置x-message-ttl,以便在无法立即传递给消费者时立即过期。这很好用,但是,在使用replyTimeout失败之前,它会让生产者等待RemoteProxyFailureException的指定值(如果我没记错的话)。如果无法传递消息(如果实际收到消息只等待超时),有什么方法可以让生产者立即失败吗?

1 个答案:

答案 0 :(得分:1)

架构的松散耦合意味着没有迹象表明生产者到期。

曾经有一个immediate标志,但它是removed in rabbitmq 3.0

可能的解决方案是配置DLX / DLQ,以便其他消费者可以使用过期的消息,这可以向客户端返回异常。

修改

只需让fallback使用者实现相同的接口并让它抛出异常。

请参阅this updated test case