應用:透過裁剪/調整大小/壓縮主圖像來動態提供響應式和最佳化的圖像
電流負載:每分鐘 10k 請求,~60MBps 流量。
目前配置:NginxPlus LB 位於頂部。具有 nginx->tomcat 的多個應用程式伺服器。在每個應用程式伺服器上,圖像都快取在 nginx 中
目前的問題:
- 快取命中率較差,因為快取是分散的,同一請求命中同一伺服器的機率較低。
- 重複緩存,儘管這是可以容忍的
- 快取清除很麻煩。由於快取可能存在於多個伺服器上,為了清除快取,需要從所有應用程式伺服器中清除它
潛在的解決方案
Nginx 負載平衡器一致性哈希。這種方式的問題是可能會造成流量分佈不均勻
引入少量 nginx 伺服器的中間層:可以在 LB 和應用程式伺服器之間引入專用的 nginx 快取層。但假設我在這一層保留 3 台伺服器,它仍然存在相同的重複快取和清除問題,儘管程度較低。
在單一 nginx 的情況下,磁碟 I/O 可能會出現問題
有人有解決這個用例的經驗嗎?不是用nginx。請隨意分享您的想法。