Asp.net 当我';我使用3台网络服务器?
我们正在开发一个分布在3个负载平衡web服务器上的web应用程序。我们通过NHibernate检索的大量数据存储在Asp.net 当我';我使用3台网络服务器?,asp.net,asp.net-mvc,caching,Asp.net,Asp.net Mvc,Caching,我们正在开发一个分布在3个负载平衡web服务器上的web应用程序。我们通过NHibernate检索的大量数据存储在System.Web.Caching.Cache中 System.Web.Caching.Cache对提高应用程序的响应能力起到了很大的作用,但是有一些问题我们还不知道如何解决,例如 当用户请求服务器1上的数据时,数据会缓存在服务器1上,但对于他们的下一个请求,负载平衡器可能会将他们定向到服务器2。他们在server1上请求的数据不再可用,server2将不得不再次从数据库中请求该数
System.Web.Caching.Cache
中
System.Web.Caching.Cache
对提高应用程序的响应能力起到了很大的作用,但是有一些问题我们还不知道如何解决,例如
HttpContext.Session
我们有没有办法在其他两台服务器的缓存上设置缓存依赖项
我们是否可以对实际的数据库表或行实现缓存依赖关系?当这些更改发生时,将刷新缓存?--或者我们可以设置一个数据库触发器以某种方式刷新缓存吗?是的,多服务器环境暴露了ASP.NET缓存的弱点,因为它只是一台服务器。您可能希望研究使用分布式缓存,例如,它将为您提供一个逻辑缓存,作为所有三个web服务器的基础
AppFabric可与NHibernate一起用作二级缓存-请参阅(但请注意,这表明当前的实现可能不是AppFabric v1版本的最新版本)。您有几个选项: 1) 使用分布式缓存(例如distcache、velocity或ncache) 2) 使用所有web服务器都使用的共享缓存实例(例如memcached) NHibernate为所有这些都提供了二级缓存提供程序,可以找到