この質問をしたスタックオーバーフローここで試してみることを提案されました:
ユーザーが写真をアップロードできるウェブサイトを構築しており、アップロードされた写真をサムネイルに変換したいと考えています。
今後の計画として、Web サイトの人気が高まった場合、画像 (オリジナルとサムネイルの両方) が複数のサーバーに保存され、そこから提供されるようにスケールアウトするにはどうすればよいでしょうか。クラスターでしょうか。これに役立つオープン ソース ソフトウェアはありますか。
ありがとう。
答え1
後で良い選択肢を得るためにできる最も簡単な方法は、画像が変更されてもファイル名が変わらないようにソフトウェアを記述することです。画像を変更すると、必ずファイル名も変更されます。つまり、独自のキャッシュまたはコンテンツ配信ネットワークを介して非常に長いキャッシュ有効期間を設定でき、必要なディスク読み取り回数を大幅に削減できます。(画像がキャッシュまたは CDN から特定のファイルを即座にフラッシュするメカニズムが必要になる場合があります。もっている完全に削除されます。
水平スケーリングを可能にするには、イメージを多数のグループ (100 以上) に分割し、各イメージへのパスの先頭に、イメージが属するグループを付加します。現時点では、すべてのグループを同じサーバーから提供できますが、後日、ロード バランサーを使用して、イメージ グループに基づいてトラフィックを異なるサーバーに転送することがかなり簡単になります。イメージにはクラスター化されたファイル システムを使用しません。これは、複雑さが増すためであり、複数のサーバーといくつかのロード バランサー ルールを使用して負荷を分散する方がおそらく簡単です。