使用Nirvana(或其他MOM中间件),实现RPC的最佳方法是什么?

| 使用Nirvana(http://my-channels.com/)或其他面向消息的中间件,就延迟,可伸缩性和安全性而言,实现经典RPC(一个请求-一个响应)的最佳方法是什么?     
已邀请:
        典型的模式是使用相关性ID(例如GUID)在消息传递平台之上实现请求/响应语义。 每个请求都有一个新的Guid附加到服务器端,在服务器端,创建的响应中有一个附加了请求的guid。 例如,在客户端上,假设我们有一个messageBus实例,它具有一个publish()方法将数据发送到总线,以及一个OnNext()方法来异步接收来自总线的数据,然后我们可以将messageBus包装为IObservable ,并编写以下内容:
function DataItem GetReqResp(QueryItem q)
{
    q.Guid = Guid.NewGuid();
    messageBus.Publish(q);
    return messageBus.Where(n => n.Guid == q.Guid).Take(1);
}
    

要回复问题请先登录注册