快速的Python/Jython进程间通信?
我想做的就是通过套接字进行一些远程过程调用(RPC)。我有一个用Jython 2.5运行的服务器,负责一些后台工作。我需要从一个用CPython运行的Django前端服务器发起一些调用。我一直在努力尝试实现进程间通信(IPC),但一直没有成功。
我尝试过的东西有:
- Apache Thrift没有正式的版本,只有一些快照。我想用一些稳定的东西。
- JSON-RPC听起来不错,应该可以通过套接字运行,但实际上大多数实现似乎只能在HTTP上工作。HTTP的开销正是我想避免的。
- Protocol Buffers其实只是一个序列化协议。根据我的了解,protobuf提供了RPC的接口生成,但只是接口。实际编写所有连接代码还是用户自己来做。如果我必须使用套接字,那我就用JSON来序列化。这样更简单,而且速度更快。
- Pyro在Jython作为服务器时工作不正常,似乎有套接字超时的问题。我已经给邮件列表发了消息。
- pysage,消息传递真不错!但它需要Python 2.6或者处理模块(这个有编译扩展)。而Jython是2.5,不支持编译扩展。
- Candygram是pysage的一个有趣替代品,但据我所知,它没有维护。我甚至没有尝试过在Jython上使用它。有人有经验吗?
- Twisted Perspective Broker在Jython上也不工作。
我知道用XML-RPC来做这件事会很简单,这让我更烦躁。我想避免HTTP的开销,但同时我真的不想深入到套接字的底层去实现自己的协议。如果我这样做,肯定会出错。
有什么想法吗?我可能会哭20分钟,然后就用XML-RPC了。