python - 快速的 python/jython IPC?

标签 python ipc jython twisted rpc

我只想通过套接字进行一些 RPC 调用。我有一台运行 jython 2.5 的后端服务器。我需要从在 CPython 上运行 Django 的前端服务器进行一些调用。为了让任何形式的 IPC 运行,我一直在用头撞墙。

我尝试过的事情列表:

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

我知道用 XML-RPC 做这件事会很容易,这让我更加暴躁。我想避免 HTTP 的开销,但与此同时我真的不想沉迷于使用套接字来实现我自己的协议(protocol)。如果我这样做,我会做错的。

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

最佳答案

你有没有考虑过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,为什么不直接使用 SocketServerpickle?不需要太多的协议(protocol),很难出错。发送/接收带有长度前缀的腌制字符串。

关于python - 快速的 python/jython IPC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163574/

相关文章:

python - Jython 中的日期时间

python - 有没有人在 Grinder 3 的 jython 脚本中成功使用 'yield' 关键字?

java - 如何在 Java 应用程序中使用 jython 独立 jar 文件

c - 使用两个单向管道的双向通信

Python 2.7 - 重定向处理程序不在重定向时传递参数

python - Numpy 在数字末尾截零

python - 如何从 pandas 中的列表创建接触点 DataFrame

c - Fortran 中的 IPC?

c - 分配 :what can "corrupt" allocated memory in Linux/Qt application (threads involved)?

python - python虚拟环境出错