Im在单个Web服务器(IIS 8/Windows Server 2012)上跨多个Web应用程序访问单个缓存的场景挣扎着。正确缓存多个站点的体系结构
目前我们有一个16GB内存的服务器,只运行一个站点。 为了讨论起见,可以说这个网站自己消耗10GB内存(我知道很多)
它将所有内容存储在System.Web.HttpRuntime.Cache
中,其中检索速度非常快。一个典型的场景是从这个缓存中检索10,000个对象,它可以在几个毫秒内完成。
当我想将另一个web应用程序添加到与服务器上运行的其他站点99.9%相同的服务器并理想地希望访问此网站中的所有内容以使HttpRuntime.Cache快速点亮时,会变得棘手。
我看到的问题是,这个HttpRuntime.Cache无法在应用程序之间共享,只要我知道。
我试过AppFabric,Redis和NCache,所有分布式缓存代理,并且它们可以检索相同的10,000个对象的绝对最快速度大约是2秒,这对于按需网站是没有好处的。 (顺便说一下,林肯定相当肯定这两秒钟的1.999是充满解密这也是非常密集的CPU)
我是否缺少明显的东西...一个服务器上的两个Web应用程序访问缓存不需要昂贵的序列化/反序列化?或者是时候分出一个新的网络服务器了。