当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《PyRo和RPyCpython库的优点和缺点是什么?》经验,为你挑选了2个好方法。

我正在寻找一个Python的远程过程调用引擎,我发现PyRo(Python远程对象)和RPyC(远程Python调用)都是我正在寻找的东西.

但是,我很想知道他们如何相互比较,他们的利弊是什么?



1> Alex Martell..:

我个人发现它们大致相同,但RPyC的作者(这里)声称更简单(也许对于某些人而言,并非所有用于分布式计算的人都有一点意义;我可能已经习惯了它来做一个好的判断;-).引用他......:

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

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

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

顺便说一句,我并不是特别喜欢单语言RPC系统 - 即使Python满足了我99%的需求(并且它不是那么高;-),我喜欢这样一个事实,我可以使用任何语言来完成其余的1 %...我不想在RPC层放弃它! - )我宁愿通过这个模块或类似的东西来做例如JSON-RPC ......! - ).


回覆。最后一段:Pyro最近获得了本机Java和C#实现,因此它不是“仅Python”。它被称为** Pyrolite **:http://irmen.home.xs4all.nl/pyrolite/

2> JS...:

YMMV,但这是我评估RPyC,Pyro4和ZeroRPC用于即将到来的项目的结果.请注意,没有深入的测试,这也不是一个深入的评论,只是我关于每个项目如何适应我即将开展的项目的需求的说明.

ZeroRPC:

相当多的依赖

非常年轻的项目(来自dotCloud的主要支持)

很少的文档

无法访问远程对象的属性,只是方法

由于缺少属性访问,IPython选项卡完成不适用于远程对象

Pyro4:

Python3支持

很好,丰富的文档

成熟的项目

没有属性访问/ IPython选项卡完成

Pyro3:

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

没有Python3支持

RPyC:

属性访问,远程对象上的IPython选项卡完成

Python3支持(在docs中声明;尚未验证)

参差不齐的文件

FWIW:

我倾向于喜欢RPyC(也许是因为它是我的第一个?;-),但它的文档很少.这是我第一次接触到RPC,我花了很长时间才"弄清楚"如何让事情发生.作者(Tomer)非常有帮助,并对Google RPyC列表中的Qs做出回应.

如果您是RPC的新手,我建议从Pyro开始,并利用其可靠的文档来学习绳索.根据需要转到RPyC,ZeroRPC等.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有