用户主要可以对 Web 应用程序进行 CRUD 操作。但是对于我的特定 Web 应用程序,情况有所不同。用户从不做 CUD。他们只能检索数据。
于是上图:
1-有一个服务更新数据库频繁(每秒7-8次更新)(调度框架是Quartz.Net)
2- Sql Server 2008 R2
3- Asp.Net MVC 4(网络用户只能从 Sql Server 读取数据!)
要求:Web 用户永远不会从 Sql Server 获取数据!
策略A:(代号:主机为Web App)
1- 从 Asp.Net MVC 调用服务库,所以我们可以更新数据库和缓存事务
2- Web 用户可以从缓存中读取
3- 在 App_Start 上,我们从 sql server 更新缓存数据。
4- 基于时间的应用程序池回收已关闭
策略B:(代号:Web Pipe)
1- 服务作为 exe 运行。
2- 服务不进行 Sql 更新,它向 Asp.Net MVC 应用程序发送 Web 请求。
3- 所以 Asp.Net MVC 应用程序(控制器的操作)确实更新和缓存事务
4- 在 App_Start 上,我们从 sql server 更新缓存数据。
5- 基于时间的应用程序池回收已关闭
对于这两个场景,Web 用户永远不会从 SqlServer 获取数据。他们总是从缓存中读取数据。他们总是使用对象缓存。Asp.Net Mvc 的最快缓存。没有序列化开销。