Cache

以非同步方式記憶體請求

  • November 18, 2020

有很多選項可以在 Web 伺服器/代理上記憶體請求,但我正在尋找一種方法來讓傳入請求“等待”直到記憶體準備好,然後用記憶體響應所有排隊的請求。

我幾乎可以肯定我在一些 Medium 文章中讀到過它,但我找不到它,所以也許這裡的一些大師可以指導我走這條路。

更新

感謝@martynas-saint 的評論,我找到了我正在尋找的文章, 並且通過連續的大量資源討論了這個話題,所以非常感謝!

Varnish Web 記憶體預設執行此操作 - 它稱為請求合併或折疊。要了解有關它的更多資訊,請查看 - https://info.varnish-software.com/blog/request-coalescing-and-other-reasons-to-use-varnish-as-an-origin-shield

我們折疊請求,因此您的設置不會 內容分發的大壞狼是一種所謂的“雷霆群”效應,由同時到達的大量請求觸發。想想黑色星期五之類的事情,但是對於 HTTP 請求,系統會被淹沒並阻塞傳入流量。它要麼減速到爬行,要麼完全崩潰。實際上,這通常發生在大型線上活動中,例如奧運會、足球比賽,或者黑色星期五。

然而,這種流量通常是高度可記憶體的,Varnish 實現了請求合併(或折疊)以節省時間。這個想法非常簡單:如果 20 個使用者同時請求相同的內容,則只從源獲取一次數據。它有很多有趣的技術細節,但我今天不會讓你厭煩,別擔心。重要的一點是,Varnish 透明地為您完成所有艱苦的工作,這樣雷鳴般的牛群就不會踐踏您的出身。

這描述了可能的程式碼解決方案(使用不再積極開發的 Netflix/Hystrix):

https://medium.com/@jacqtrain/the-hystrix-collapser-and-how-it-might-save-your-webservices-85fb183db620

引用自:https://serverfault.com/questions/1042959