首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式系统:Python3工作人员和Node.js服务器?

分布式系统:Python3工作人员和Node.js服务器?
EN

Stack Overflow用户
提问于 2014-09-16 23:43:18
回答 2查看 699关注 0票数 0

我希望建立一个分布式系统,其中有运行资源密集型Python 3代码的计算/工作机器,并且只有一个web服务器向客户端提供Python计算的结果。我非常想用Node.js编写web服务器。

我已经研究过使用RPC框架--具体来说,这个问题引导我使用ZeroRPC,但它与Python3不兼容(主要问题是它需要gevent,它还没有接近于Python3版本)。据我所知,Python-Node.jsRPC似乎没有另一个可行的选项。

有鉴于此,我对使用RPC以外的东西持开放态度,特别是因为我已经读到RPC策略对程序员隐藏得太多了。

如果这真的更有意义的话,我也愿意为web服务器使用一种不同的语言;例如,从开发的角度来看,只为服务器使用Python可能要简单得多。

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 19:51:11

你有几个选择。

首先,它听起来像是您喜欢ZeroRPC,而您唯一的问题是它依赖于gevent,它还没有准备好3.x。

好吧,gevent已经接近3.x了。有一些分叉是人们正在测试甚至使用的,您可以在第38期上看到这一点。截至2014年9月中旬,米哈尔·马苏雷克似乎获得了最大的吸引力。如果你幸运的话,你可以这么做:

代码语言:javascript
复制
pip3 install git+https://github.com/MichalMazurek/gevent
pip3 install ZeroRPC

或者,如果ZeroRPC的元数据显示它仅限于Python2,那么您可以使用与gevent相同的方式从它的回购中安装它。

不利的一面是,gevent-3.x叉子还没有经过很好的战斗测试,这就是为什么它们还没有在上游被接受并被释放的原因。但是,如果您不着急,并且愿意冒险,那么您很有可能从今天的叉子开始,在发布时切换到最终版本,希望在您自己达到1.0之前。

第二,ZeroRPC当然不是唯一可用于Python或Node的RPC库。而且它们中的大多数都具有类似的接口,用于通过RPC公开方法。而且,虽然出于可伸缩性或部署的原因,您最终可能需要类似ZeroMQ的东西,但您可能可以使用一些更简单、更广泛的东西--RPC-它有十几个Python和Node实现--用于早期开发,然后稍后切换到ZeroRPC

第三,RPC并不是很复杂,大多数库所做的将方法绑定到RPC并不是那么困难。使其异步可能很棘手,但对于早期开发,您只需使用一个简单但不可伸缩的解决方案--为每个请求创建一个线程--并在稍后切换到其他的解决方案。(当然,只有在服务处于无状态状态时,该解决方案才会很容易;否则,您只需要消除所有异步问题,并将它们替换为争用条件问题…)。

票数 2
EN

Stack Overflow用户

发布于 2014-09-16 23:54:41

ZeroMQ提供了几个传输类,而前两个类最适合于异构RPC层的情况。

  • ipc://
  • tcp://
  • pgm://
  • epgm://
  • inproc://

ZeroMQ为这两个系统都提供了端口,因此肯定也能满足您的预期需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25880100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档