2

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

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

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

提前致谢。

4

2 回答 2

3

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

于 2013-12-03T08:07:18.780 回答
2

有关选项,请参阅参考文档

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

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

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

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

于 2013-12-03T14:24:25.987 回答