我在linux机器上运行了两个后台进程。一个是Java,第二个是Python。在这两个应用之间交换数据的最有效方法是什么?我说的是文本/图像数据低于<每5分钟大约10Mb (未流式传输)。由于重构成本高,我们无法完全迁移到Python(或Java)。
自然选择是文件系统还是本地网络,但在内存数据库(sqllite / redis / ...)中呢? 我猜想文件系统处理或网络处理有时会很痛苦。
你认为内存数据库对于这样的任务是不错的选择? Jython不是选项,因为并非所有的Python库都兼容......
环境:ubuntu服务器12.04 64位,Python 2.7,Java 7
答案 0 :(得分:2)
Unix domain sockets将是最快的,因为它不会使用磁盘,并且没有像TCP这样的不必要的开销。
答案 1 :(得分:1)
鉴于您需要的数据量相对较少,我认为最简单的方法是使用TCP套接字在两个进程之间进行通信。环回接口的数据速度足以满足您的需求。
答案 2 :(得分:1)
传输数据的有效方法是本地TCP连接,并使用通用协议流式传输数据。 Protocol buffers是跨语言平台定义协议的一种方法。内存数据库会为您的系统添加一个全新的组件和不必要的复杂性。