gpt4 book ai didi

architecture - Squid 处理并发缓存未命中

转载 作者:行者123 更新时间:2023-12-04 04:12:46 27 4
gpt4 key购买 nike

我们正在使用 Squid 缓存来卸载来自我们 Web 服务器的流量,即。它被设置为反向代理,在入站请求访问我们的 Web 服务器之前对其进行响应。

当我们对不在缓存中的同一请求的并发请求感到震惊时,Squid 将所有请求代理到我们的 Web(“源”)服务器。对我们来说,这种行为并不理想:我们的原始服务器在尝试同时满足 N 个相同的请求时陷入困境。

相反,我们希望第一个请求代理到源服务器,其余请求在 Squid 层排队,然后当源服务器响应第一个请求时,所有请求都由 Squid 完成。

有谁知道如何配置 Squid 来做到这一点?

我们已经多次通读文档并在网络上彻底搜索了该主题,但无法弄清楚如何去做。

我们也使用 Akamai,有趣的是,这是它的默认行为。 (但是,Akamai 有如此多的节点,即使启用了 Akamai 的 super 节点功能,我们仍然会在某些流量高峰场景中看到大量并发请求。)

对于其他一些缓存,这种行为显然是可配置的,例如。 Ehcache 文档提供了选项“并发缓存未命中:缓存未命中将导致缓存过滤器上游的过滤器链被处理。为了避免请求相同键的线程执行无用的重复工作,这些线程阻塞在第一个线程之后。 ”

有些人称这种行为为“阻塞缓存”,因为后续并发请求会阻塞在第一个请求之后,直到它完成或超时。

感谢您查看我的菜鸟问题!

奥利弗

最佳答案

您正在寻找折叠转发:
http://www.squid-cache.org/Versions/v2/2.7/cfgman/collapsed_forwarding.html

在 2.6 和 2.7 中可用,但在 3.x 中还没有。

当缓存中有内容但陈旧时,您可能还对 stale-while-reavlidate 感兴趣:
http://www.mnot.net/blog/2007/12/12/stale

关于architecture - Squid 处理并发缓存未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com