私がやりたいことは、ソケットを介していくつかの 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 パースペクティブ ブローカーTwisted は Jython では動作しません。
XML-RPC でこれを行うのは簡単なことだとわかっているので、さらに気難しくなります。HTTP のオーバーヘッドを回避したいのですが、同時に、独自のプロトコルを実装するためにソケットを汚したくはありません。もしそうなら、私はそれを間違ってやるでしょう。
何か案は?おそらく 20 分ほど泣いてから、XML-RPC を使用するだけです。