我的ASP.NET应用程序在应用程序可访问的static
字段中存储了一些昂贵的(加载)数据(在这种情况下使用System.Web.Caching.Cache
是不合适的。)
我的应用程序也在几台带有中央SQL Server的Web服务器上进行负载均衡。
有时此缓存将失效。如果用户在Server01
上提交了一些更新的数据,那么该应用程序知道它在将数据提交到数据库时将清除其本地缓存。
但是,Server01
如何通知Server02
此更改以使Server02
的缓存失效?
我不知道ASP.NET中用于web-farm通信的任何内置服务器间IPC,似乎我必须在应用程序中创建一个URI处理程序(例如http://mysite/InvalidateCache
)将由其他服务器调用,但它似乎有点hackish。还有更好的方法吗?
答案 0 :(得分:3)
我有点脑屁并且意识到网络服务器只需通过发送彼此的请求就可以相互通信 - 不需要特殊的侧通道线。我之前称这个想法是hackish,但理论上听起来很合理。
显然出于安全考虑,这些请求需要通过物理专用网络连接,或者有加密签名的请求,但我现在真的想不出有什么问题。
答案 1 :(得分:1)
我建议您探索像AppFabric这样的分布式缓存。 http://msdn.microsoft.com/en-us/library/ff383731(v=azure.10).aspx