Java和Python守护进程之间的数据桥梁

时间:2013-05-08 05:05:33

标签: java python database distributed-computing in-memory-database

我在linux机器上运行了两个后台进程。一个是Java,第二个是Python。在这两个应用之间交换数据的最有效方法是什么?我说的是文本/图像数据低于<每5分钟大约10Mb (未流式传输)。由于重构成本高,我们无法完全迁移到Python(或Java)。

自然选择是文件系统还是本地网络,但在内存数据库(sqllite / redis / ...)中呢? 我猜想文件系统处理或网络处理有时会很痛苦。

你认为内存数据库对于这样的任务是不错的选择? Jython不是选项,因为并非所有的Python库都兼容......

环境:ubuntu服务器12.04 64位,Python 2.7,Java 7

3 个答案:

答案 0 :(得分:2)

Unix domain sockets将是最快的,因为它不会使用磁盘,并且没有像TCP这样的不必要的开销。

答案 1 :(得分:1)

鉴于您需要的数据量相对较少,我认为最简单的方法是使用TCP套接字在两个进程之间进行通信。环回接口的数据速度足以满足您的需求。

答案 2 :(得分:1)

传输数据的有效方法是本地TCP连接,并使用通用协议流式传输数据。 Protocol buffers是跨语言平台定义协议的一种方法。内存数据库会为您的系统添加一个全新的组件和不必要的复杂性。