ユーザーがイメージファイルをアップロードできるJava Webアプリケーションがあると仮定すると、Tomcatサーバーのファイルシステムにそれらのイメージが格納され、さらにリクエストすると静的リソースとして提供されます。このアプリケーションは、ロードバランサとしてmod_jkを持つApacheサーバーの背後にあるTomcatサーバーの大規模なクラスタにスケールアウトされ、展開される必要があります。静的リソースが一貫していないTomcatクラスタ
アップロードされたイメージはファイルシステム上にあるため、アップロードイベントが発生していない残りのTomcatサーバーでは利用できません。 1人のユーザが来たら、画像をアップロードし、しばらくして画像を再度要求すると、彼の要求はラウンドロビンの負荷分散ポリシーのために残念ながら別のサーバにルーティングされる可能性があります。
この種の問題に対処する従来の方法はありますか?バックエンドデータベースを利用してアップロードシステムを再設計する必要がありますか?
これは不十分なレガシークラスタシステムです。名前の衝突がたくさんあると思います。とにかく、nfsは面白い音を出します。試してみましょう。 –
ハッシュマップのようなことができます。ハッシュマップの各項目にはほとんど一意のハッシュキーがありますが、衝突の場合は別のカウンタ/ IDで一意性が保証されます。 – mindas