画像を集中的にキャッシュする

画像を集中的にキャッシュする

応用: マスター画像をトリミング/サイズ変更/圧縮することで、レスポンシブで最適化された画像を即座に提供します。

現在の負荷: 1 分あたり 10,000 件のリクエスト、約 60 MBps のトラフィック。

現在の設定: NginxPlus LBが最上位にあります。nginx->tomcatを備えた複数のアプリケーションサーバー。各アプリケーションサーバーで、イメージはnginxにキャッシュされます。

現在の問題:

  • キャッシュが分散されているため、キャッシュヒット率が低く、同じリクエストが同じサーバーにヒットする可能性は低くなります。
  • 重複キャッシュ(これは許容できる)
  • キャッシュの消去は面倒です。キャッシュは複数のサーバーに存在する可能性があるため、キャッシュを消去するには、すべてのアプリケーションサーバーからキャッシュを消去する必要があります。

潜在的な解決策

  • Nginxロードバランサの一貫性ハッシュ。このアプローチの問題点は、トラフィックの分散が不均一になる可能性があることです。

  • いくつかの nginx サーバーの中間層を導入する: LB サーバーとアプリケーション サーバーの間に専用の nginx キャッシュ層を導入できます。ただし、この層に 3 台のサーバーを保持するとします。それでも、規模は小さくなりますが、重複キャッシュとパージの問題は同じままです。

  • 単一のnginxの場合、ディスクI/Oが問題になる可能性がある

このユースケースを解決した経験のある方はいらっしゃいますか? nginx 以外でも構いません。お気軽にご意見をお聞かせください。

関連情報