1

Linux マシンで 2 つのバックグラウンド プロセスを実行しています。1 つは Java で、もう 1 つは Python です。これら 2 つのアプリ間でデータを交換する最も効率的な方法は何ですか? 約5分ごとに10Mb未満のテキスト/画像データについて話しています(ストリーミングされていません)。リファクタリングのコストが高いため、Python (または Java) に完全に移行することはできません。

自然な選択はファイルシステムまたはローカルネットワークですが、インメモリデータベース (sqllite/redis/...) はどうですか? ファイルシステムの処理またはネットワークの処理は、時々苦痛だと思います。

インメモリDBはそのようなタスクに適していると思いますか? すべての Python ライブラリに互換性があるわけではないため、Jython はオプションではありません...

環境:ubuntu サーバー 12.04 64 ビット、Python 2.7、Java 7

4

3 に答える 3

2

Unix ドメイン ソケットは、ディスクを使用せず、TCP のような不要なオーバーヘッドがないため、最も高速です。

于 2013-05-08T18:02:27.900 に答える
1

データを転送する効率的な方法は、ローカル TCP 接続であり、共通のプロトコルでデータをストリーミングします。 プロトコル バッファーは、言語プラットフォーム間でプロトコルを定義する 1 つの方法です。インメモリ データベースは、システムにまったく新しいコンポーネントと不要な複雑さを追加します。

于 2013-05-11T00:45:51.803 に答える