Oli*_*H-H 4 architecture caching cdn squid high-traffic
我们使用Squid缓存从我们的Web服务器卸载流量,即.它被设置为反向代理,在它们到达我们的Web服务器之前响应入站请求.
当我们对同一个不在缓存中的请求的并发请求进行blitzed时,Squid会将所有请求代理到我们的Web("origin")服务器.对我们来说,这种行为并不理想:我们的原始服务器陷入困境,试图同时满足N个相同的请求.
相反,我们希望第一个请求代理到源服务器,其余的请求在Squid层排队,然后当源服务器响应第一个请求时,Squid都会完成所有请求.
有谁知道如何配置Squid这样做?
我们已经多次阅读了文档,并通过网络搜索了主题,但无法弄清楚如何去做.
我们也使用Akamai,有趣的是,这是它的默认行为.(但是,Akamai拥有如此多的节点,即使启用了Akamai的超级节点功能,我们仍会在某些流量峰值情况下看到大量并发请求.)
对于某些其他缓存,此行为显然是可配置的,例如.Ehcache文档提供了选项"并发缓存未命中:缓存未命中将导致缓存过滤器上游的过滤器链被处理.为了避免线程请求相同的密钥执行无用的重复工作,这些线程阻塞第一个线程. "
有些人将此行为称为"阻塞缓存",因为后续并发请求会阻止第一个请求,直到它完成或超时.
看看我的菜鸟问题!
奥利弗
您正在寻找折叠转发:http: //www.squid-cache.org/Versions/v2/2.7/cfgman/collapsed_forwarding.html
提供2.6和2.7,但尚未在3.x.
当缓存中存在某些东西但是陈旧时,您可能也会对过时的陈旧感兴趣:http://www.mnot.net/blog/2007/12/12/stale