使用Spring Boot实现Rabbit MQ - (Aysnchronous)RPC

时间:2016-09-23 07:52:47

标签: asynchronous spring-boot rabbitmq amqp

在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”,但它没有用。

1 个答案:

答案 0 :(得分:0)

我通过使用官方的rabbitmq客户端API解决了这个问题 我为生产者创建了一个持久性队列来发送消息,并让消费者阅读消息 对于每个请求,我创建一个临时队列,就像RPC用于回复一样 似乎Spring Boot中RabbitMQ的API无法达到这个要求。