9

私は、データを処理し、Cassandraをデータストアとして使用するアプリケーションに対してPHPフロントエンドを実行しています。

ただし、PHPでは、一部の計算に必要なパフォーマンス(および、メモリ内に必要な膨大な量のデータの管理)が得られないことはわかっています。

裏付けのあるものをC++で記述し、PHPアプリケーションからアクセスしたいと思います。私は2つをインターフェースするための最良の方法を見つけようとしています。

私が見たいくつかのオプション:

  1. スリフト(私はすでにカサンドラに使用しているので自然な選択です)
  2. Googleのプロトコルバッファ
  3. gSOAP
  4. Apache Axis

上記は私が見たものだけであり、私は自分自身を制限するものではありません。

PHPアプリケーションに転送されるデータは非常に小さいため、ストリーミングは必要ありません。計算結果のみが転送されます。

皆さんはどう思いますか?

4

3 に答える 3

3

もし私があなたなら、私は倹約を使うでしょう、別のRPCフレームワークを引っ張る意味はありません。あなたが持っていて、すでに知っているものと一緒に行きなさい。Thriftはそれをとても簡単にします(グーグルプロトコルバッファもそうですが、あなたは本当に2つの異なるメカニズムを必要としません)

于 2010-10-16T07:12:01.830 に答える
2

別のアプリケーションとしてC++を使用することに制限していますか?PHPと直接インターフェースすることを検討しましたか?(つまり、C ++拡張機能をPHPアプリケーションにリンクします)。

2番目のアプローチが必ずしも最初のアプローチよりも優れているとは言いませんが、いくつかの異なるトレードオフの選択肢があるため、とにかく検討する必要があります。たとえば、PHPとC ++の間でデータを渡す待ち時間は、2つが別々のアプリケーションである場合、同じアプリケーションが動的にリンクされている場合よりも確実に長くなります。

于 2010-09-22T05:26:36.330 に答える
1

計算に必要なデータ量に関する詳細が役立ちます。倹約は合理的な選択のように思えます。PHP、計算ノード、およびCassandraバックエンドの間で使用できます。結果が小さい場合、PHPと計算ノード間のRPCトランスポートはそれほど大きな違いはありません。

于 2010-10-16T06:27:18.613 に答える