我在寻找一个遥远的过程调动Python和我发现 火(蟒蛇的远程对象)RPyC(远程蟒蛇叫) 都是这种事我在寻找。

但是,我是好奇的知道他们是如何相互比较和他们有什么优点和缺点?

有帮助吗?

解决方案

我个人认为它们大致相同,但RPyC的作者(此处)声称更加简单(也许是有些人并不是所有用于分布式计算的人都有一点意见;我可能已经习惯了它来做一个好的判断;-)。引用他......:

  虽然PYRO有很长的名单   我的简历中有相当多的项目   找到设置服务器   很复杂,如果你考虑到   注册所需的代码量   对象,运行名称服务器等   更不用说数量不同了   你必须考虑的概念(事件,   重新绑定,有或没有名字   服务器,代理与属性代理,   名称必须是唯一的,等等。和   它是有限的(远程对象必须是   可选的,所以你无法使用   远程文件等)。总而言之,PYRO   有太多特殊情况而已   一般来说太复杂了(是的,我   考虑这个复杂的)。所以   当然,我不是一个独立的评论家    - 但要自己判断。 RPyC不是更简单,更清洁吗?

另一方面,PyRO确实尝试提供一些安全措施(RPyC的作者声称它太弱了,并且是PyRO声称的许多并发症的基础)。

更独立的声音,David Mertz,提供此处 RPyC的良好解释(PyRO已经存在了很长时间,大卫指出以前的文章覆盖它)。 “经典模式”是指“经典模式”。是完全通用且简单且零安全的部分,“基本上与Pyro相同(没有Pyro的可选安全框架)”; “服务模式”更安全(默认禁止所有未明确允许的内容),David说,“服务模式本质上是RPC(例如,XML_RPC),以模拟调用约定和实现的一些细节为模。对我来说似乎是一个公平的评估。

顺便说一句,我并不是特别喜欢单语言RPC系统 - 即使Python满足了我99%的需求(并且它不是那么高;-),我喜欢这样一个事实:我可以使用任何语言剩下的1%...我不想在RPC层放弃它! - )我宁愿做例如通过 JSON-RPC -rpc“rel =”noreferrer“>这个模块,或类似......! - )。

其他提示

情况因人而异,但这里是我的结果评估RPyC,Pyro4和ZeroRPC用于在即将到来的项目。注意到,没有深入测试,也不是这个意图深入审查,只是我的笔记在如何以及每个工作需要我即将到来的项目。

ZeroRPC:

  • 相当多的依赖关系
  • 非常年轻的项目(主要支持dotCloud)
  • 非常小的文件
  • 不能远程访问对象的属性,只是方法
  • 由于缺乏属性访问,IPython标签的完成不远的对象

Pyro4:

  • Python3支持
  • 不错的,丰富的文档
  • 成熟的项目
  • 没有属性访问/IPython签完成

Pyro3:

  • 支持属性访问(如在文件;有没有验证)
  • 没有Python3支持

RPyC:

  • 属性访问,IPython签完成关于遥对象
  • Python3支持(如在文件;尚未验证)
  • 参差不齐文件

总的来说:

我倾向于喜欢RPyC(也许因为这是我第一个吗?;-),但它的文件是稀疏。这是我第一次接触到RPC,我花了很长时间"神交"如何获取事工作。提交人(Tomer)是非常有益的,并且应该上谷歌RPyC名单。

如果你是新来的RPC,我谨建议开始火和利用其固的文件学习的绳索。移动到RPyC,ZeroRPC,等等。作为你的需要的需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top