如何使用Spring AMQP进行同步消息回复?

时间:2013-12-03 05:33:42

标签: rabbitmq spring-amqp

我有使用Spring AMQP进行同步消息传递的代码,如下所示。我的场景是生产者发送预期响应的消息。因此,任何人都可以帮助解决在同步消息情况下如何发送响应的问题。

Producer end - rabbitTemplate.convertAndSend(object);
Consumer end - rabbitTemplate.receiveAndconvert();

我知道在异步消息传递的情况下我们可以使用handleMessage()。但是,使用上面的API如何在同步消息的情况下发回响应?你能帮帮我吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

如何使用这个convertSendAndReceive? 在这种情况下,RabbitTemplate负责同步发送请求并接收回复。 试试吧,请告诉我们

答案 1 :(得分:2)

有关选项,请参阅reference documentation

生产者端的convertSendAndReceive添加了replyTo标头(默认是新的临时队列,但您可以配置固定的回复队列)。

在消费者方面,最简单的解决方案是消息监听器容器,MessageListenerAdapter将调用您的简单POJO并负责为您发送回复。

如果您必须在消费者方面使用兔子模板,则需要使用较低级别receive来访问消息属性,以便您可以访问replyTo信息以便发送回复。

查看MessageListenerAdapter的源代码,了解他是如何做到的。