ユーザーは、ほとんどの場合、Web アプリケーションの CRUD 操作を行うことができます。しかし、私の特定の Web アプリケーションでは状況が異なります。ユーザーは決して CUD を行いません。データの取得のみが可能です。
だから写真:
1- データベースを頻繁に更新するサービスがあります (毎秒 7 ~ 8 回の更新) (スケジューリング フレームワークは Quartz.Net です)
2- SQL Server 2008 R2
3- Asp.Net MVC 4 (Web ユーザーは SQL Server からのみデータを読み取ることができます!)
要件: Web ユーザーが SQL Server からデータを取得することはありません。
戦略 A: (コードネーム: ホストは Web アプリ)
1- Asp.Net MVC からサービス ライブラリを呼び出して、データベースとキャッシュをトランザクションで更新できるようにします。
2- Web ユーザーはキャッシュから読み取ることができます
3- App_Start で、SQL サーバーからキャッシュ データを更新します。
4- 時間ベースのアプリケーション プールのリサイクルは終了しました
戦略 B: (コード名: Web パイプ)
1-サービスはexeとして実行されます。
2-サービスはSql更新を行わず、WebリクエストをAsp.Net MVCアプリケーションに送信します。
3- したがって、Asp.Net MVC アプリケーション (コントローラーのアクション) はトランザクション的に更新およびキャッシュを行います
4- App_Start で、SQL サーバーからキャッシュ データを更新します。
5- 時間ベースのアプリケーション プールのリサイクルは終了しました
どちらのシナリオでも、Web ユーザーは SqlServer からデータを取得しません。それらは常にキャッシュからデータを読み取ります。これらは常にオブジェクト キャッシュを使用します。Asp.Net Mvc の最速のキャッシュ。シリアル化のオーバーヘッドはありません。