2010-04-09 84 views
4

我們使用Squid緩存來卸載我們網絡服務器的流量,即。它設置爲反向代理,在入站請求響應我們的Web服務器之前進行響應。魷魚處理併發緩存未命中

當我們得到併發請求的請求不在緩存中時,squid將所有請求都通過我們的web(「原始」)服務器進行代理。對我們來說,這種行爲並不理想:我們的原始服務器陷入困境,試圖同時完成N個相同的請求。相反,我們希望第一個請求代理到源服務器,其餘的請求在Squid層排隊,然後在源服務器響應第一個請求時由Squid完成。

有誰知道如何配置Squid來做到這一點?

我們已經通過文檔多次閱讀並徹底搜索了網絡主題,但無法弄清楚如何去做。

我們也使用Akamai,有趣的是,這是它的默認行爲。 (但是,Akamai有這麼多的節點,所以即使啓用了Akamai的超級節點功能,我們仍然可以在某些流量激增的情況下看到大量併發請求。)

此行爲顯然可以配置爲其他一些緩存,例如。 Ehcache文檔提供了選項「併發緩存未命中:緩存未命中將導致處理緩存過濾器上游的過濾器鏈。爲避免線程請求相同的密鑰執行無用的重複工作,這些線程會阻塞第一個線程。 「

有些人稱這種行爲爲「阻塞緩存」,因爲隨後的併發請求會阻塞第一個請求,直到它完成或超時。

查看我的noob問題的Thx!

奧利弗

回答

9

您正在尋找倒塌轉發:在3.x中 http://www.squid-cache.org/Versions/v2/2.7/cfgman/collapsed_forwarding.html

可在2.6和2.7,但尚未

當有東西在緩存,但陳舊的,你可能也有興趣在陳舊,而-reavlidate: http://www.mnot.net/blog/2007/12/12/stale

+0

謝謝,馬克!就是這樣。 另外,你的直覺是正確的,而陳舊 - 重新驗證也是我們更喜歡的行爲,所以我們會研究一下,然後希望試一試! – 2010-04-15 16:38:50

+0

仍然不明白爲什麼人們很樂意在評論中表示感謝,只是簡單地標明每個人的正確利益。 – Rudiger 2012-10-10 04:16:59

+0

如果您想知道如何爲類似行爲配置[ATS](https://trafficserver.apache.org/),請查看以下鏈接:[Reducing Origin Server Requests](https://trafficserver.readthedocs.org/) en/latest/admin/http-proxy-caching.en.html#reduce-origin-server-requests-avoid-the-thundering-herd)&[Collapsed Forwarding not work](http://users.trafficserver.apache。 narkive.com/WEieKdIW/collapsed-forwarding-not-work) – brutuscat 2015-06-18 13:44:43