1

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

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

您认为内存数据库是此类任务的好选择吗?Jython 不是那里的选项,因为并非所有 Python 库都兼容......

环境:ubuntu server 12.04 64bit,Python 2.7,Java 7

4

3 回答 3

2

Unix 域套接字将是最快的,因为它不会使用磁盘并且它没有像 TCP 那样的不必要的开销。

于 2013-05-08T18:02:27.900 回答
1

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

于 2013-05-08T15:05:56.307 回答
1

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

于 2013-05-11T00:45:51.803 回答