5

Sybase データベースの上にある Java SOAP データ サービスを使用していますが、これは制御できない理由により、パフォーマンスが信頼できません。データベースは、内部チームによって変更されたベンダー パッケージの一部であり、ほとんどの問題は、1 日の特定の時間帯に応答時間が遅くなることが原因です。

SOAP サービスは計算グリッドにデータを提供します。データを要求するときは、高速で一貫性のある応答時間が必要です。このサービスは基本的な CRUD 機能を提供しますが、読み取りと書き込みの比率は約 100:1 です。

データベースの信頼性の低いパフォーマンスから自分を切り離し、SOAP サービスの高速性と信頼性を確保するための最善の戦略は何ですか?

4

6 に答える 6

4

この問題は、通常はベンダー データベースで数回発生しています。

これが Windows の場合、SOAP サービスとデータベースの間の仲介として Windows サービスを作成できます。次に、非同期通信のために、SOAP サービスと Windows サービスの間にメッセージ キュー (MSMQ または MQ Series などの JMS 実装) を配置します。このようにして、データベースのパフォーマンスの問題が SOAP サービスに影響を与えることはなくなります。ただし、このソリューションには、複雑さが増すという犠牲が伴います。

.NET Web サービスは、そのクライアントによって呼び出され、非同期的に応答できることに注意してください。Java SOAP サービスでそれが可能かどうかはわかりません。

これが Unix のフレーバーである場合、Windows サービス (おそらくデーモン) と同様の機能を備えていると思います。

于 2008-11-15T18:19:27.763 に答える
2

スレッドを使ってみませんか?そうすれば、データベースが遅い場合でも、アプリケーションは穏やかに待機できます。

于 2008-11-15T22:12:28.230 に答える
2

RoadWarriorの応答は正しいです。操作を実行する要求はキューに入れられます。ユーザーは、リクエストを行うために1回、リクエストを受け取るために1回入ります。これは実際、Expediaのような信頼性の低いサービス(バックエンド)と通信しているサイトで起こっていることです。ユーザーのブラウザは、赤いライトが緑色に変わるまでサーバーにpingを送信しています。

于 2008-11-15T22:34:46.250 に答える
1

他の社内チームにそのデータベースを調整してもらい、アプリを使用する全員が恩恵を受けるようにします。私はいくつかのインデックスが大好きです!

于 2008-11-16T01:21:28.770 に答える
1

Web サービスからの応答をキャッシュする方法は?

于 2008-11-15T18:44:05.047 に答える
1

DB が大きすぎない場合は、DB からの結果をキャッシュできます。

于 2008-11-15T18:52:52.953 に答える