我必須在非常緩慢的API之前放置緩存服務。 api響應時間大約爲40秒,這對我的用戶來說太長了。我想使用像Varnish這樣的東西緩存響應。有HTTP緩存代理與異步更新?
這裏是我的問題:
當緩存服務被擊中的第一次,這將需要大約40秒鐘就可以從上游API的響應。所有連續的請求將直接從緩存中提供。當緩存TTL過期時,緩存服務必須再次輸入緩慢的API並等待40秒,這是不可接受的。有沒有辦法通過做某種異步後臺緩存更新來避免它?如果是這樣,可以清漆做到這一點?
爲簡單起見,我們假設所有客戶端請求都是相同的。
如果高速緩存服務的命中次數達到每秒數百次,情況實際上會嚴重得多。長達40秒的等待刷新緩存將排隊數以千計的客戶端請求,這可能會導致不同類型的問題,包括丟棄連接。我認爲Varnish足夠智能,它只會觸發一次上游API調用,並排隊其他請求,直到獲得響應。
清漆或其他物品是否保存最近一次的正確複印?如果我的緩慢API已經停止並且根本沒有響應,那麼即使緩存過期,是否可以從緩存中爲LKGC提供服務?
什麼是最好的軟件來實現這一切?