禁食python/jython IPC?

2024-10-04 03:18:43 发布

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

我只想通过套接字进行一些RPC调用。我有一个运行jython2.5的服务器来处理后台的事情。我需要从在CPython上运行Django的前端服务器上打一些电话。我一直在努力让任何形式的工控机运转起来。在

我尝试过的事情:

  • Apache Thrift没有任何实际版本,只有快照。我想用一些稳定的。在
  • JSON-RPC很有趣,它应该能够在套接字上运行,但实际上,{a3}的大多数似乎只在HTTP上工作。HTTP开销正是我要避免的。在
  • Protocol Buffers实际上只是一个序列化协议。据我所知,protobuf为RPC提供了接口生成,但它只是接口。实际上,所有连接代码的编写都取决于用户。如果我要使用套接字,我将只使用JSON进行序列化。它更简单,faster。在
  • Pyro不能将Jython作为服务器正常工作。某种类型的套接字超时问题。我给邮件列表发了一封信。在
  • pysage是的消息传递!只有它需要Python2.6或处理模块(它有编译的扩展)。Jython是2.5版本,不允许编译扩展。在
  • Candygram是pysage的一个有趣的替代品,但据我所知,它是无法维护的。我还没和Jython试过。有什么经验吗?在
  • Twisted Perspective BrokerTwisted在Jython上不起作用。在

我知道用XML-RPC做这件事很简单,这会让我更加古怪。我想避免HTTP的开销,但同时我真的不想为了实现我自己的协议而使用套接字。如果我这样做,我会做错的。在

有什么想法吗?我可能会哭20分钟,然后使用XML-RPC。在


Tags: django版本服务器jsonhttp协议序列化xml
3条回答

使用套接字如何,但要借助asyncoreasynchat?在

一些链接:

你有没有考虑过Hessian?简介:

The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.

它有Python客户机和Java服务器(还有更多)。在

更新:如果你对HTTP已经死了,为什么不直接使用SocketServer和{}?不需要太多的协议,很难出错。发送/接收带长度前缀的酸洗字符串。在

我觉得最有趣的两个:

  • Gearman和{a2}。现在已经用C(最初是perl)重写了它,速度快了很多。它在生产中使用(尽管我不能指出任何在生产中使用的python绑定的例子)。它的MySQL和Postgresql接口非常有趣。最后,todays tweet来自Django的Jacob Kaplan Moss。

  • RabbitMQ尽管它只是一个消息队列,除非您同时使用celery,否则您仍必须序列化您自己的消息。

相关问题 更多 >