PyRo和RPyC python libs的优缺点是什么?

2024-05-16 01:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个Python的远程过程调用引擎,我发现PyRo (Python Remote Object)RPyC (Remote Python Call) 都是我要搜索的类型。

然而,我很想知道他们是如何相互比较的,他们的优缺点是什么?


Tags: 引擎类型远程objectremote过程callpyro
2条回答

YMMV,但这里是我对RPyC、Pyro4和ZeroRPC进行评估的结果,以便在即将到来的项目中使用。请注意,没有深入的测试,也不打算是一个深入的审查,只是我的笔记,每一个工作如何为我的下一个项目的需要。

零rpc:

  • 相当多的依赖关系
  • 非常年轻的项目(dotCloud的主要支持)
  • 几乎没有文件
  • 无法访问远程对象的属性,只能访问方法
  • 由于缺少属性访问,IPython tab completion在远程对象上不起作用

Pyro4型:

  • Python3支架
  • 好的,大量的文件
  • 成熟项目
  • 没有属性访问/IPython制表符完成

焦3:

  • 支持属性访问(在文档中声明;尚未验证)
  • 不支持Python3

RPyC公司:

  • 属性访问,远程对象上的IPython选项卡完成
  • Python3支持(在文档中声明;尚未验证)
  • 零星文件

前进方向:

我喜欢RPyC(也许是因为这是我的第一次?;-),但它的文档很少。这是我第一次接触RPC,我花了很长时间“摸索”如何让事情运转。作者(托默)是非常有帮助的,并对谷歌RPyC列表上的Qs作出了回应。

如果您是RPC新手,我建议您从Pyro开始,并利用它的可靠文档来学习诀窍。根据需要,继续使用RPyC、ZeroRPC等。

我个人认为它们大致相当,但RPyC的作者(here)声称它们更简单(也许对于一个并不完全习惯于分布式计算的人来说,他有一个观点;我可能太习惯了,无法做出一个好的判断;-)。引用他的话……:

although PYRO has a long list of considerable projects in its resumè, I find setting up a server too complicated, if you take into account the amount of code needed, registering objects, running name servers, etc. Not to mention the number of different concepts you have to consider (events, rebinding, with or without name servers, proxy vs. attribute-proxy, names have to be unique, etc.). And it's limited (remote objects must be picklable so you can't work with remote files, etc.). All in all, PYRO has too many special cases and is generally too complicated (yes, I consider this complicated). So of course I'm not an independent reviewer -- but judge for yourself. Isn't RPyC simpler and cleaner?

在硬币的另一面,派洛确实试图提供一些安全性(RPyC的作者声称这一点无论如何都太弱了,并且是派洛声称的许多复杂情况的基础)。

更独立的声音David Mertz为RPyC提供了一个很好的解释(PyRO已经存在很久了,David指出了以前的文章)。“经典模式”是完全通用且简单的零安全部分,“基本上与Pyro相同(没有Pyro的可选安全框架)”;“服务模式”更安全(默认情况下,所有未明确允许的都是禁止的),并且,David说,“服务模式基本上是RPC(例如,XML-RPC),关于调用约定和实现的一些细节。对我来说似乎是个公平的评价。

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

相关问题 更多 >