1

ユーザー入力を受け入れ、SQL データベースからデータを取得し、大量のデータ処理を行い、最終的にデータをユーザーに提示する多くのページを含む aspx Web サイトがあります。

サイトはどんどん大きくなり、サーバーに大きな負荷をかけ始めています。

私がやりたいことは、おそらく物事を少し分離することです:

サーバー A は Web サイトをホストし、サイトはユーザーからの入力を受け入れ、それらのパラメーターをサーバー B で実行されているアプリケーションに渡します。

サーバー B は SQL からデータを取得し、大量のデータ処理を行ってから、データセットまたはデータテーブル オブジェクトを Web サイトに返します。

これは可能ですか?

4

3 に答える 3

3

確かに、これはN層アーキテクチャと呼ばれます。

分離する最も明白なことは、データベース(高速ディスク、大量のRAM)と1つ以上の別個のWebサーバーの要求を満たすように調整された1つのデータベースサーバーです。

Webサーバーとデータベースサーバーの間にアプリケーション層を配置することで、これを拡張できます。アプリケーション層は、Web層で収集されたユーザー入力を受け入れ、データベースと対話し、大量の処理を実行して、結果をWeb層に返すことができます。最も一般的には、Windows Communication Foundation(WCF)を使用して、アプリケーション層の機能をWebサーバーに公開します。アプリケーションサーバーは、CPUが非常に高速になるように調整されている場合が多く、必要な処理によっては、データベースサーバーよりもディスクが遅く、メモリが少ない場合があります。このソリューションの利点は、アプリケーションの負荷が増大するにつれて、同一のアプリケーションサーバーをどんどん追加できることです。

于 2012-08-30T17:19:06.780 に答える
0

F5のようなロードバランサーを使用します

そうすれば、アーキテクチャは変更されませんが、ntier アプローチを使用してサイトをデータ層とプレゼンテーション層に分割すると、ロード バランサーが各要求を最も軽い負荷でサーバーに転送します。

于 2012-08-30T19:38:45.500 に答える
0

ビジネス モデルに基づいて、各入力の重い計算を回避するためのキャッシュ戦略が必要です。株のウェブサイトを考えてみましょう。毎分多くの取引がありますが、それぞれの市場動向を更新するわけではありません。定義された間隔 (毎時、毎日など)、定義されたインタラクション数 (値のカウントに基づく) などに基づいて更新をスケジュールできます。このタスクは、サーバーの負荷が低いときに実行する必要があります。このようにして、訪問者は十分に正確である間、メインページで株価の傾向を見ることができます。このような負荷の高いシナリオでは、高価なハードウェアでさえあまり役に立たない場合があるため、優れた設計がすべてです。必要に応じて、何が行われるかについての情報を共有してください。

于 2012-08-30T17:27:46.290 に答える