2011-10-30 17 views
5

次の質問は数回尋ねられましたが、より良い回答が得られたように感じていますので、ここでリソースやブログの書籍を探したり、スケーラブルなMVC3 C#コードを記述するためのポインタ。複数のサーバーにまたがってホストされているパフォーマンスの良いコードを記述するための指針があれば、私はそれを高く評価します。議論のために、1日に10〜20Kのヒット以上を期待するコードがあるとします。トラフィックが多いASP.NET MVCのコーディングに関する考慮事項

質問: 複数のサーバーに分散されたスケーラブルなコードを記述する際に、どのような考慮事項がありますか?

私の腸は私に、セッションを処理することにあると言います。ここ数年の私の経歴は、Webアプリケーションのためのサービスではなく、書式のアプリケーションであり、C#MVC3向けのWebアプリケーション固有の開発に役立つ情報を探しています。あなたが私が間違いなく調べることをお勧めのブログや本!

+2

個人的に、私はいつも試して、複数のサーバー上でアプリケーションを実行するときに頭痛が減るので、セッションの使用を避けてください。あなたのアプリケーションでセッションを使用していない場合は、小さなperf boostのためにweb.configでオフにすることもできます! –

答えて

2

スケーラブルWebアプリケーションを実装するための規則の1つは、ステートレスであることです。セッションは、これがまさにアプリケーションをステートフルなものにするため、式から外されるべき最初のものです。あなたが完全にステートレスなアプリケーションを持っているなら、トラフィックが増えてアプリケーションがそれを処理できるようになると、ハードウェアを投げる可能性があります。したがって、web.configに次の行を入力して開始してください。

<system.web> 
    <sessionState mode="Off" /> 
    ... 
</system.web> 

この問題は、これが状態になるので、データ層に置かれます。したがって、パフォーマンスを向上させ、このノードへの要求の数を制限するには、キャッシュを使用することになります。できるだけ多くのデータをキャッシュします。好ましくは、このキャッシュをウェブサーバとは別のマシンに格納する。キャッシングを行うための専用マシン。

+0

@ xanatos - MVCはViewStateを使用しません –

+0

これは応答のための素晴らしい入力です。これらのキャッシング技術のいくつかを示すのに役立つ読書資料をお勧めしますか?可能であれば、C#MVCを傾けることをお勧めしますが、私は何かを準備します! :) 再度、感謝します。 – likestoski

+0

@likestoski、ここでは出力キャッシングの概要を紹介します。http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-csこれも部分ページ出力キャッシング用のものです。http:// davidhayden .com/blog/dave/archive/2011/01/25/PartialPageOutputCachingASPNETMVC3.aspxそしてデータキャッシングのためにここに素晴らしい一連の投稿があります:http://stevescodingblog.co.uk/tag/memorycache/ –

関連する問題