2016-09-23 64 views
1

在RabbitMQ官方網站中,他們建議爲每個客戶端創建一個單一的回調隊列來實現RPC模式。
客戶端(製片人)的樣本代碼可以像下面這樣:使用Spring Boot實現Rabbit MQ - (異步)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啓動-AMQP實現這一點,所有的例子都是在發送和接收順序(或說同步)。
我不知道如何實現只有一個請求隊列和應答隊列的異步消息通信。
p.s.我也嘗試過「AsyncRabbitTemplete」,但它沒有奏效。

回答

0

我已經通過使用官方rabbitmq客戶端API解決了這個問題。
我爲生產者發送消息和消費者閱讀消息創建一個持久隊列。
對於每個請求,我創建一個臨時隊列,就像RPC爲回覆而做的那樣。
看來Spring Boot中的RabbitMQ的API無法達到這個要求。