我们有22个HTTP服务器,每个服务器都运行各自的ASP.NET缓存.他们从仅在高峰时段更新的只读数据库中读取数据.
我们使用文件依赖关系来使缓存无效,提示服务器"新建"他们的缓存...如果在高峰时段意外地完成此操作,则由于突然大量打开连接而导致数据库群集崩溃的风险.
有没有人在这种分布式表单中使用memcached和ASP.NET?在我看来,它将提供一个巨大的优势,即只需要构建一个缓存(并将数据库减少21倍),而memcached将处理在每个盒子上分发它.
如果有,是将它放在与HTTP框相同的框中,还是运行单独的缓存层?它的扩展程度如何?我们可以期望它需要功能强大的服务器吗?我们的工作数据集并不大(我们在每个HTTP框上都适合4 gig的内存就好了).
你如何处理失效?
寻找经验和战争故事.
编辑:Win2k3,IIS6,64位服务器...每盒4演出(我相信,当我们改为64位服务器时,我们可能已经将它提升到16演出).
"memcached将处理在每个盒子上分发它"
memcached不会将缓存分发或复制到memcached服务器场中的每个框.memcached客户端基本上散列密钥,并根据该散列选择缓存服务器.当其中一个memcached服务器发生故障时,您将丢失该服务器上存在的任何缓存项,但是,客户端将识别该故障并开始将值写入其他服务器.在这种情况下,您的代码需要考虑缓存中缺少的项目,并在必要时重置它们.
本文将更详细地讨论memcached体系结构:memcached的工作原理.