Microsoft の WCF で構築された Web サービスが多数のユーザーにどれだけうまくスケーリングされるかについて、経験のある人はいますか?
私が考えているレベルは、アプリケーションのビジネス ロジックを提供する WCF サービスのコレクションに接続する 1000 人以上のクライアント ユーザーの領域であり、これらは従来の 3 層アーキテクチャと同様に、データベースと通信します。
パフォーマンスを低下させた特定の問題や、このレベルのスケーラビリティを可能にした設計上の教訓はありますか?
Microsoft の WCF で構築された Web サービスが多数のユーザーにどれだけうまくスケーリングされるかについて、経験のある人はいますか?
私が考えているレベルは、アプリケーションのビジネス ロジックを提供する WCF サービスのコレクションに接続する 1000 人以上のクライアント ユーザーの領域であり、これらは従来の 3 層アーキテクチャと同様に、データベースと通信します。
パフォーマンスを低下させた特定の問題や、このレベルのスケーラビリティを可能にした設計上の教訓はありますか?
WCF アプリケーションが目的のレベルに確実にスケーリングできるようにするには、サービスが満たさなければならない統計についての考えを微調整する必要があるかもしれません。
「1000 人以上のクライアント ユーザー」にサービスを提供していると述べていますが、サービスがそのレベルで実行できるかどうかを判断するには、推定使用量の数値も必要です。これは、アプリの 1 秒あたりのリクエスト数などの簡単な統計を計算するのに役立ちます処理する必要があります。
WCF プロジェクトの作業を終えたばかりで、テスト ハードウェアで 1 秒あたり 400 のリクエストを取得することができました。これは、各ユーザーが 1 日に 300 のリクエストを行うという予想される使用パターンと合わせて、1 日に平均 100,000 人のユーザーを処理できることを示しています ( 1 日を通してフラットな使用量グラフ)。
さらに、WCF サービス コードをステートレスにすることはかなり一般的であるため、ボックスを追加して実際の WCF コードをスケールアウトするのは非常に簡単です。つまり、システムの全体的なパフォーマンスは、ビジネス ロジックによって制限され、 WCF によるものよりも永続化レイヤー。
おそらく最初に見始めることができる 4 つの最大のもの (優れたサービス コードを用意すること以外に) は、次の項目に関連するものです。
デフォルトで安全になるように WCF を設計したため、デフォルトは非常に制限されています。