Bilder zentral zwischenspeichern

Bilder zentral zwischenspeichern

Anwendung: Liefern Sie responsive und optimierte Bilder im Handumdrehen durch Zuschneiden/Ändern der Größe/Komprimieren von Masterbildern

Aktuelle Belastung: 10.000 Anfragen pro Minute, ~60 MBit/s Datenverkehr.

Aktuelle Konfiguration: NginxPlus LB sitzt an der Spitze. Mehrere App-Server mit nginx->tomcat. Auf jedem App-Server werden Bilder im nginx zwischengespeichert.

Aktuelle Probleme:

  • Schlechte Cache-Trefferquote, da der Cache dezentralisiert ist und die Wahrscheinlichkeit gering ist, dass dieselbe Anfrage denselben Server erreicht.
  • Doppeltes Caching, obwohl dies toleriert werden kann
  • Das Leeren des Caches ist mühsam. Da der Cache möglicherweise auf mehreren Servern vorhanden ist, muss er zum Leeren des Caches von allen App-Servern gelöscht werden.

Potentielle Lösungen

  • Nginx Load Balancer konsistentes Hashing. Das Problem bei diesem Ansatz ist, dass er zu einer ungleichmäßigen Verkehrsverteilung führen kann

  • Führen Sie eine mittlere Schicht mit einigen Nginx-Servern ein: Eine dedizierte Nginx-Caching-Schicht kann zwischen LB- und App-Servern eingeführt werden. Aber nehmen wir an, ich behalte 3 Server in dieser Schicht, dann besteht immer noch das gleiche Problem mit doppeltem Caching und Bereinigungsproblemen, wenn auch um Größenordnungen geringer.

  • Bei einem einzelnen nginx kann die Datenträgereingabe/-ausgabe ein Problem darstellen

Hat jemand Erfahrung mit der Lösung dieses Anwendungsfalls? Auch wenn es nicht mit Nginx ist. Teilen Sie uns gerne Ihre Gedanken mit.

verwandte Informationen