Spring AMQP - 是否存在仅等待确认的同步阻塞发送方法?

时间:2015-02-04 00:39:00

标签: spring spring-amqp

我正在使用Spring AMQP v1.4.2并尝试在RabbitTemplate中找到一个阻止线程的发送方法,直到从服务器收到确认,以确保我们不要丢失信息。

我已经看过sendAndReceive()方法,但它等待RPC样式的回复消息,而我只想等待频道上的确认。我知道我可以使用setConfirmCallback()方法,但这意味着它不是同步的,当确认到达时我可能会在不同的线程上结束,我将丢失我的线程本地,即很多Spring好东西。< / p>

有没有在Spring AMQP中实现这个目标?

1 个答案:

答案 0 :(得分:2)

RabbitMQ通过使用异步发布获得巨大的性能优势。正如您所说,您可以配置发布者确认以获得异步确认消息已传递到队列。

如果您确实要阻止,可以在setChannelTransacted(true)上使用RabbitTemplate; commit将阻塞,直到消息在队列中得到保护。