0

datanoise-actionwebservice (2.3.2) を使用して、SOAP Web サービス API を実装する単一のコントローラーがあります。Rail を Web アプリまたは Web サイトとして使用して静的コンテンツを提供することはまったくありません。コントローラー コードから直接 Mysql.real_connect ベースのクエリを使用して、純粋に Web サービスとして実行しています。これは、Rails のモデル部分の使い方を深く理解していないことによるものですが、実際には、クエリが非常に複雑でコーディングしやすいためです。

この Web サービスはさらに、他のレガシー サービスへの SOAP Web サービス呼び出しを行い、Windows ベースの Web サービス クライアント アプリに応答します。

課題は、これまでデフォルトの mongrel サーバーを使用して複数の端末での API への複数の呼び出しを処理してきたことですが、mongrel をクラスターとして再デプロイするか、パッセンジャーなどの他のセットアップを使用してクライアントへの応答時間を改善する必要があることは明らかです。これまたは同等のアプローチを達成するための簡単なHOWTOを見つけることができません-ほとんどの場合、Apacheなどの必要性が静的コンテンツやCSSなどを提供するためのウェブサイト/ウェブアプリとしての使用法を指しています。

複数の Web サービス呼び出しを同時に処理し、コントローラーで処理して応答するようにクラスターをセットアップできるリソースを教えてください。Rails は、Web サービス要求ごとにコントローラーを自動的にインスタンス化して、並行して処理できるようにしますか? それとも、利用可能なライブラリを使用して書き直す必要がありますか?

どんな助け/アドバイスも大歓迎です。私は何も書き直すことができません-それは Rails2.3.5/Ruby1.8.7 である必要があります-これはすでに本番環境で動作しているため、アップグレードはオプションではありません.また、datanoise 自体は 1.8.7+ または Rails 3 を好きではないようです.見ることができます。

乾杯!

4

1 に答える 1

1

基本的に、複数の Mongrel を実行する必要があります。

mongrel プロセスはバックエンド サーバーになり、フロントエンドの負荷分散プロキシを実行する必要があります。

問題は、純粋な Ruby シングルスレッド Mongrel の利点はセットアップが簡単なことです。セットアップが簡単な領域を超えたら、Passenger を実行する複雑さに対処することもできます。Passenger は内部で負荷分散を行います。

それが私だったら、すぐに使える Passenger が含まれていないため、ソースから nginx または tengine をコンパイルします。これは、構成スクリプトに引数を追加するのと同じくらい簡単です。

# gem install rake rack passenger --no-rdoc --no-ri
# exit
$ ./configure --add-module=`passenger-config --root`/ext/nginx
$ make
于 2013-03-20T14:24:36.530 に答える