1

スケールのために Azure に移行したいアプリケーションがあります。ただし、開始する前に気になる点が 1 つあります。

ユーザーが誘導される Web ページがあります。ページ上の分離コードがデータベースに送信され、HTML レポートが生成されます。新しい HTML ドキュメントは、一連のグラフやその他の画像とともに一時ファイルに配置されます。その後、ユーザーはこの新しいページにリダイレクトされます。

Azure では、複数の理由から、ユーザーが同じマシンにリダイレクトされるかどうかを確認することはできません。Azure ロード バランサーが容量に基づいてユーザーを別のマシンにプッシュするか、マシンがプロビジョニング解除される可能性があります。問題、または何でも。

これらは非常に頻繁に作成および削除される一時ファイルにすぎないため、アプリケーションの一時ディレクトリを、すべての Web ロールが読み取り/書き込みアクセス権を持つある種の共有ドライブにポイントし、URL をマップできるようにするのが最適です。この共有ドライブに。それは可能ですか?それとも、これは私が望むよりも複雑になるのでしょうか?

すべてのインスタンスを独自のローカル一時ディレクトリに書き込むこともできます。それらにフィードするのに 1 ~ 2 秒しかかからないので、そのインスタンスがそのマイクロ秒の間にダウンするかどうかのリスクを冒しても問題ありません。この点に関する問題は、一時 HTML ファイルへのリダイレクトで http 1.1 を使用し、その特定のインスタンスへの接続を維持するかどうかです。

ありがとう、ジェイセン

4

3 に答える 3

1

あなたが見たいと思うかもしれない2つのことがあります:

  • ある種の分散ファイル システム (ブロブ ストレージに基づく) をサポートする Windows Azure Web サイトを使用します。そのため、Windows Azure Web サイトに "ローカルに" 保存したファイルは、その Web サイトをホストしている各サーバーから利用できます (複数のインスタンスを使用している場合)。
  • Blob Storage からファイルを提供します。そのため、HTML ファイルを各インスタンスでローカルに保存する (またはユーザーを特定のインスタンスに固執させようとする) 代わりに、単純にそれらを Blob Storage に保存し、そこで使用をリダイレクトします。
于 2013-01-09T21:45:17.930 に答える
0

@サンドリーノからの良いもの。さらにいくつかのアイデア:

  • 結果の html をロール内キャッシュ (Web ロール インスタンスに配置可能) に保存し、キャッシュから html を提供します (すべてのインスタンスで共有)。
  • CDNを活用しましょう。「CDN」フォルダーを実際のエッジキャッシュにマップできます。したがって、コードで html を一度生成すると、コンテンツを再度生成する必要がある TTL の有効期限が切れるまでキャッシュされます。
于 2013-01-09T22:36:21.170 に答える
0

Azure Blob は、複数のインスタンスからアクセスできる html ファイルを保存するのに最適な場所だと思います。ユーザーをそのブロブ コンテンツにリダイレクトするか、カスタム ページを記述してブロブからコンテンツをレンダリングすることができます。

于 2013-01-10T06:25:27.243 に答える