我有使用Spring AMQP进行同步消息传递的代码,如下所示。我的场景是生产者发送预期响应的消息。因此,任何人都可以帮助解决在同步消息情况下如何发送响应的问题。
Producer end - rabbitTemplate.convertAndSend(object);
Consumer end - rabbitTemplate.receiveAndconvert();
我知道在异步消息传递的情况下我们可以使用handleMessage()
。但是,使用上面的API如何在同步消息的情况下发回响应?你能帮帮我吗?
提前致谢。
答案 0 :(得分:3)
如何使用这个convertSendAndReceive
?
在这种情况下,RabbitTemplate
负责同步发送请求并接收回复。
试试吧,请告诉我们
答案 1 :(得分:2)
有关选项,请参阅reference documentation。
生产者端的convertSendAndReceive
添加了replyTo
标头(默认是新的临时队列,但您可以配置固定的回复队列)。
在消费者方面,最简单的解决方案是消息监听器容器,MessageListenerAdapter
将调用您的简单POJO并负责为您发送回复。
如果您必须在消费者方面使用兔子模板,则需要使用较低级别receive
来访问消息属性,以便您可以访问replyTo
信息以便发送回复。
查看MessageListenerAdapter
的源代码,了解他是如何做到的。