19

Microsoft の WCF で構築された Web サービスが多数のユーザーにどれだけうまくスケーリングされるかについて、経験のある人はいますか?

私が考えているレベルは、アプリケーションのビジネス ロジックを提供する WCF サービスのコレクションに接続する 1000 人以上のクライアント ユーザーの領域であり、これらは従来の 3 層アーキテクチャと同様に、データベースと通信します。

パフォーマンスを低下させた特定の問題や、このレベルのスケーラビリティを可能にした設計上の教訓はありますか?

4

3 に答える 3

15

WCF アプリケーションが目的のレベルに確実にスケーリングできるようにするには、サービスが満たさなければならない統計についての考えを微調整する必要があるかもしれません。

「1000 人以上のクライアント ユーザー」にサービスを提供していると述べていますが、サービスがそのレベルで実行できるかどうかを判断するには、推定使用量の数値も必要です。これは、アプリの 1 秒あたりのリクエスト数などの簡単な統計を計算するのに役立ちます処理する必要があります。

WCF プロジェクトの作業を終えたばかりで、テスト ハードウェアで 1 秒あたり 400 のリクエストを取得することができました。これは、各ユーザーが 1 日に 300 のリクエストを行うという予想される使用パターンと合わせて、1 日に平均 100,000 人のユーザーを処理できることを示しています ( 1 日を通してフラットな使用量グラフ)。

さらに、WCF サービス コードをステートレスにすることはかなり一般的であるため、ボックスを追加して実際の WCF コードをスケールアウトするのは非常に簡単です。つまり、システムの全体的なパフォーマンスは、ビジネス ロジックによって制限され、 WCF によるものよりも永続化レイヤー。

于 2008-09-05T23:32:19.750 に答える
3

WCF 構成の既定の制限、同時実行性、およびスケーラビリティ

于 2008-09-04T14:09:58.130 に答える
2

おそらく最初に見始めることができる 4 つの最大のもの (優れたサービス コードを用意すること以外に) は、次の項目に関連するものです。

  • バインディング- 一部のバインディングとそれらが実行されるプロトコルは他のものよりも高速ですが、tcp はどの http バインディングよりも高速になります。
  • インスタンス モード- セッションの呼び出し元に対してクラスがどのように割り当てられるかを決定します
  • One & Two Way Operations - クライアントへの応答が不要な場合は、一方向で行います
  • スロットリング - 最大セッション数 / 同時呼び出しとインスタンス数

デフォルトで安全になるように WCF を設計したため、デフォルトは非常に制限されています。

于 2008-09-18T06:45:32.073 に答える