在RabbitMQ官方网站上,他们建议为每个客户端创建一个回调队列来实现RPC模式 客户端(生产者)的示例代码可能如下所示:
public RPCClient() throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
connection = factory.newConnection();
channel = connection.createChannel();
replyQueueName = channel.queueDeclare().getQueue();
consumer = new QueueingConsumer(channel);
channel.basicConsume(replyQueueName, true, consumer);
但是我找不到任何通过Spring Boot -AMQP实现这一点的文章,所有例子都是顺序发送和接收(或同步说)。
我想知道如何只用一个请求队列和回复队列来实现异步消息通信
附:我也试过“AsyncRabbitTemplete”,但它没有用。
答案 0 :(得分:0)
我通过使用官方的rabbitmq客户端API解决了这个问题 我为生产者创建了一个持久性队列来发送消息,并让消费者阅读消息 对于每个请求,我创建一个临时队列,就像RPC用于回复一样 似乎Spring Boot中RabbitMQ的API无法达到这个要求。