Chr*_*art 5 .net c# udp tcp rmi
我如何实现分布式远程方法调用系统?
我正在尝试创建以下内容:
var result = remoteHost.MyMethod(5);
我尝试过使用像SuperPool和Scs这样的RMI库,但它们有一些基本问题:
不同之处在于客户端上的任何组件也可以与其他客户端上的组件通信,而不是仅与客户端 - >服务器或服务器 - >客户端通信.
您如何建议我实施此项目(可能使用这些现有解决方案作为基础),还是有其他现有解决方案可能有效?
这是我正在尝试做的图表:
重要说明:客户端不会相互连接.
处理:
这个想法与SuperPool所做的一样,除了允许客户端 - >服务器 - >客户端通信路径在第二个客户端上调用方法.
尽管ZeroMQ级别相当低,但它支持双向通信并具有.NET 支持,并且可以在 nuget.org 上获取
您可以在 DEALER/ROUTER 或 DEALER/DEALER 套接字对上多路复用许多双向对话,并且任何一方都可以发起对话。
请注意,ZeroMQ 并没有提供方法调用所需的一切;您必须创建自己的协议或使用现有协议并实施它。
Salt 和 Cloudless 都构建在 ZeroMQ 之上,提供远程方法调用。
ZeroMQ 促进了非常强大的异步套接字(以及更多) 路由消息是绝对可能的。如果您将ZeroMQ 指南中的 Ventilator 和 Sink结合起来 ,您就非常接近您想要实现的目标。
请注意,您仍然需要实现实际的协议和方法调用。