阅读背景:

RabbitMQ RPC(Remote procedure call) 云计算集群的远程调用

来源:互联网 
客户端代码稍微涉及: 我们建立一个连接通道,声明一个独家“回调”排队等待回复。 我们订阅“回调”队列,这样我们就可以收到RPC反应。 我们调用方法使实际的RPC请求。 在这里,我们首先生成唯一correlationId号码并将其保存- while循环将使用这个值来捕捉适当的响应。 接下来,我们发布请求消息,有两个属性:replyTo correlationId。 在这一点上我们可以坐下来,等到适当的响应到达。 while循环做一个非常简单的工作,为每一个响应消息它检查如果thecorrelationId是我们正在寻找的人。 如果是这样,它节省了响应。 最后我们将响应返回给用户。 本文提供的设计并不是唯一可能的实现RPC服务,但它有一些重要的优点: 如果RPC服务器太慢了,你可以扩大通过运行另一个。 尝试运行第二个RPCServer在一个新的控制台。 在客户端,RPC需要发送和接收消息只有一个。 不需要像queueDeclare同步调用。 由于RPC客户端只需要一个网络往返一个RPC请求。
分享到: