0

私は Web サーバー上でコンテンツ管理システムを実行しています。これにより、ユーザーは画像やファイルなどのアセットをサーバーにアップロードできます。

私が抱えている問題は、ロード バランサーの背後で 2 つのサーバーが実行されることであり、資産管理を処理する効率的な方法を見つけようとしています。

私が持っている質問は次のとおりです。

アセットは毎回 1 つのサーバーにアップロードされますか? または、負荷に応じて画像/ファイルが server1 または server2 になる可能性はありますか?

最終的にどのサーバーに保存されるかわからない場合、画像を提供するにはどうすればよいですか? これらのアセット (画像/ファイル) のディレクトリを 2 つのサーバー間で同期しておく必要がありますか?

ありがとう、

4

1 に答える 1

1

同期は、クラックするのが難しい問題です。Couchdb を使用してアドホック同期を行うことはできますが、それには低レベルの問題に関する十分な知識が必要です。したがって、書き込みマスターを選択する必要があります。

DRDB

DRDBを見ることができます:D 1つのサーバーを書き込みマスターとして使用し、もう1つのサーバーをスレーブとして使用します。その後、両方からコンテンツをサーバーに送信できます。このアプローチは、データベース ペアにとって驚くべきものです。

注: write-master と serve-only のコードと URL を分けるのは面倒です

カウチデブ

あなたはcouchdbを使うことができますが、それはやり過ぎかもしれません。これは、大量のデータと高レベルのフォールト トレランス向けです。

NFS

write-master のアセット ディレクトリを nfs ドライブとしてエクスポートし、他のコンピューターからインポートすることができます。ただし、この場合、すべての場合で負荷分散されるわけではありません。つまり、ファイルがスレーブによってキャッシュされている場合のみです。3 番目のコンピューターを NFS サーバーとして使用できます。これにより、より多くの Web サーバーに拡張できます。

すべてのフロントエンドサーバーが書き込みを実行できるため、書き込みマスターなしで実行できるため、中央の NFS サーバーが最適なソリューションになる可能性があります。これは、ペタバイトの範囲を超えることを考えていない限り、私が使用するアプローチです:P

于 2009-12-10T14:45:58.007 に答える