応用: マスター画像をトリミング/サイズ変更/圧縮することで、レスポンシブで最適化された画像を即座に提供します。
現在の負荷: 1 分あたり 10,000 件のリクエスト、約 60 MBps のトラフィック。
現在の設定: NginxPlus LBが最上位にあります。nginx->tomcatを備えた複数のアプリケーションサーバー。各アプリケーションサーバーで、イメージはnginxにキャッシュされます。
現在の問題:
- キャッシュが分散されているため、キャッシュヒット率が低く、同じリクエストが同じサーバーにヒットする可能性は低くなります。
- 重複キャッシュ(これは許容できる)
- キャッシュの消去は面倒です。キャッシュは複数のサーバーに存在する可能性があるため、キャッシュを消去するには、すべてのアプリケーションサーバーからキャッシュを消去する必要があります。
潜在的な解決策
Nginxロードバランサの一貫性ハッシュ。このアプローチの問題点は、トラフィックの分散が不均一になる可能性があることです。
いくつかの nginx サーバーの中間層を導入する: LB サーバーとアプリケーション サーバーの間に専用の nginx キャッシュ層を導入できます。ただし、この層に 3 台のサーバーを保持するとします。それでも、規模は小さくなりますが、重複キャッシュとパージの問題は同じままです。
単一のnginxの場合、ディスクI/Oが問題になる可能性がある
このユースケースを解決した経験のある方はいらっしゃいますか? nginx 以外でも構いません。お気軽にご意見をお聞かせください。