加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 我应该如何在.NET中实现分布式远程方法调用系统?

发布时间:2020-12-15 05:39:31 所属栏目:百科 来源:网络整理
导读:原帖 我如何实现分布式远程方法调用系统? 我正在尝试创建以下内容: 主服务器跟踪单个“主机”. 主机可以使用基于代理对象接口的编程风格与网络上的其他主机通信,例如:var result = remoteHost.MyMethod(5); 我尝试过使用像SuperPool和Scs这样的RMI库,但它
原帖

我如何实现分布式远程方法调用系统?

我正在尝试创建以下内容:

>主服务器跟踪单个“主机”.
>主机可以使用基于代理对象接口的编程风格与网络上的其他主机通信,例如:var result = remoteHost.MyMethod(5);

我尝试过使用像SuperPool和Scs这样的RMI库,但它们有一些基本问题:

> SCS仅支持服务器 – >客户或客户 – >服务器通信,没有客户端 – >客户沟通.
>据我所知,SuperPool只支持相同,虽然这张图片会另有说明,但我在文档中找不到有关如何执行此操作的任何内容:

不同之处在于客户端上的任何组件也可以与其他客户端上的组件通信,而不是仅与客户端 – >服务器或服务器 – >客户端通信.

您如何建议我实施此项目(可能使用这些现有解决方案作为基础),还是有其他现有解决方案可能有效?

更广泛的例子

这是我正在尝试做的图表:

重要说明:客户端不会相互连接.

处理:

> Client1连接到服务器
> Client2连接到服务器
> Client1在Client2上调用方法,而不知道Client2的组件是否存在于Server,另一个Client或其自身上.

这个想法与SuperPool所做的一样,除了允许客户端 – >服务器 – >用于在第二个客户端上调用方法的客户端通信路径.

解决方法

虽然 ZeroMQ是相当低的水平,it supports bidirectional communication和 .NET support并且是 available on nuget.org

You can multiplex many bidirectional conversations on a DEALER/ROUTER
or DEALER/DEALER socket pair and either side can initiate a
conversation.

请注意,尽管ZeroMQ没有准备好进行方法调用的所有内容;您必须创建自己的协议或使用现有协议并实现它.

Both Salt and Cloudless,构建在ZeroMQ之上,提供远程方法调用.

ZeroMQ facilitates very robust asynchronous sockets (and more) Routing messages是绝对可能的.如果你将Ventilator and Sink in the ZeroMQ Guide结合起来,那么你就非常接近你想要完成的任务.

请注意,您仍然需要实现实际的协议和方法调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读