1

ユーザーは私のWebサイトにファイルをアップロードするので、それらを複数のサーバーに均等に配布する必要があります。また、特定のファイルがどのサーバーにアップロードされたかを示す列をDBに含める必要があります。

これが私のデザインです。

  1. サーバー名の列挙型、つまりserver1、server2、server3があります。
  2. DBから最後にアップロードされたサーバー名を取得します
  3. 最後にアップロードされたサーバーがserver1の場合、現在のファイルをserver2にアップロードしてDBを更新する必要があります。最後にアップロードされたサーバーがserver3 \の場合、現在のファイルをserver1にアップロードしてDBを更新する必要があります。

アプリケーションとDBは現在単一のサーバーでホストされていますが、将来的には負荷分散に移行します。

これ以外に最善の方法があれば教えてください。

4

1 に答える 1

1

ソリューションは、顧客の使用方法に応じて機能する必要があります。以前にこれがどのように行われたかを簡単に説明します。

  • ラウンド ロビン DNS (複数の IP アドレスを同じドメインに割り当てる)
  • DNS ラウンド ロビンに基づいてトラフィックを取得する複数の Web サーバー
  • 各 Web サーバーには専用の SQL サーバーがあります。
  • SQL サーバーは、レプリケーションを使用してデータの同期を維持します。
  • ファイルアップロード用の単一ストレージサーバー。(ファイルのアップロードが主な機能でない限り、>1 が必要になるとは思えません)

長所: 膨大なレベルのトラフィックに到達するまで、非常に簡単にスケーリングできます。その時点で、SQL 部分を再考する必要があります。

ハードウェアを購入するときは、特定の領域にお金をかけて、ファイル サーバー/SQL または Web サーバーに集中することができます。

短所: これは真の冗長性を提供しません。そして、階層化されたアプローチにより、間違いなく悪化します。これは、管理された DNS で解決できますが、それでも完全なアプローチではなく、管理された DNS の考えにうんざりしているシステム管理者を知っています。

于 2012-12-12T05:59:07.977 に答える