如何解决使用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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。