我们有22个HTTP服务器,每个服务器都运行自己的ASP.NET缓存。它们从只读数据库中读取数据,该数据库只在非高峰时间更新。
我们使用文件依赖来使缓存无效,促使服务器“更新”它们的caches...If这是在高峰时间意外完成的,它可能会由于打开连接的突然泛滥而导致数据库集群宕机。
有没有人在这种分布式形式中使用过memcached和ASP.NET?在我看来,这将提供一个巨大的优势,只需构建一个缓存(并减少21倍的DB访问),而memcached将负责将其分发到每个机器上。
如果有,您是将其放在与HTTP盒相同的盒中,还是运行单独的缓存层?它的可扩展性如何,我们能期望它需要强大的服务器吗?我们的工作数据集并不大(我们可以将其放入每个HTTP机器上的4 of内存中)。
您如何处理无效?
寻找经验和战争故事。
编辑: Win2k3,IIS6,64位服务器...每盒4 it (我相信,当我们改用64位服务器时,我们可能已经将其提升到16 it)。
发布于 2009-02-21 01:19:36
"memcached将负责将其分发到每个机器上“
memcached不会将缓存分发或复制到memcached场中的每个机器。memcached客户端基本上对键进行散列,并根据散列选择缓存服务器。当一个memcached服务器发生故障时,您将丢失该服务器上存在的所有缓存项,但是,客户端将识别该故障并开始向另一个服务器写入值。在这种情况下,您的代码需要考虑缓存中缺少的项,并在必要时重置它们。
本文将更详细地讨论memcached架构:How memcached works。
https://stackoverflow.com/questions/571338
复制相似问题