0

Web サイトをホストしているクラウドサービスで 2 つの Azure インスタンスを実行しています。

ファイルをフォルダーにアップロードすると、インスタンスの 1 つに保存されます。ロードしようとすると、Azure が間違ったインスタンスを選択すると、ファイルが見つかりません。これを解決するにはどのようなオプションが必要ですか?

ファイルをブロブ ストレージに保存することを考えましたが、この方法で保存できれば、時間を節約できます。

4

2 に答える 2

3

質問で述べたように、ブロブ ストレージに保存する必要があります。その理由はいくつかあります。

  1. Windows Azure は、既定でラウンド ロビンの負荷分散ポリシーを使用します。つまり、1 つのインスタンスでファイルをアップロードし、ユーザーがファイルを要求したときに、要求が 2 番目のインスタンスによって処理された場合、ファイルが見つからない (エラーが発生する) ことを意味します。
  2. さらに重要なことに、クラウド サービスはstateless by nature. つまり、VM がダウンすると、その VM で行った操作 (ファイルの保存など) はすべて失われます。

一方、ブロブ ストレージは永続ストレージであり、単純な http プロトコルを介してアクセスできます。したがって、ユーザーがファイルをアップロードすると、そのファイルは BLOB ストレージに保存されます。ユーザーが要求すると、ブロブ ストレージからブロブを提供するだけです。

更新 - 以下のコメントに基づく

最初のコメントについては、引き続きブロブ ストレージを使用できます。できることは、一時ファイルを保持する BLOB コンテナーを作成することです。ユーザーがすべての手順を完了したら、それらを別のコンテナー (永続コンテナーと呼びましょう) に移動できます。あるコンテナーから別のコンテナーに BLOB をコピーするために、BLOB を VM にダウンロードする必要さえありません。Windows Azure は、あるコンテナーから別のサーバー サイドに BLOB をコピーするサーバー サイドの非同期コピーをサポートしています。

2 番目のコメントについては、負荷分散ポリシーを変更できないと思います。スティッキーセッションを実装するというものがありApplication Request Routing (ARR)ますが、残念ながら私はそれに慣れていません。あなたはそれを調べたいと思うかもしれません。

于 2013-09-05T15:09:42.550 に答える
0

VM を使用していますね。Azure Websites への切り替えがオプションである場合、アプリケーション ファイル/画像は 1 つの共有ネットワーク ドライブに配置され、すべてのインスタンスで常に利用できます。http://azure.microsoft.com/en-us/documentation/videos/web-sites-internals-and-the-file-system/

于 2014-05-05T21:34:32.497 に答える