2

私は、Web サイト (すべてのコンポーネントが Azure でホストされている) に米国と海外の両方のユーザーがいるプロジェクトに取り組んでいます。データの 99% に BLOB とテーブル ストレージを使用しています。私が理解していないのは、複数のテーブルなどを含むグローバル インスタンスをセットアップし、すべてを同期させる方法です。ユーザーがフランスからサイトにログインしたとします。ユーザーが常に同じデータ センターにアクセスするようにするにはどうすればよいでしょうか (つまり、同じストレージ インスタンスを意味します)。別のストレージ インスタンスにヒットした場合、データはそこにないか、古くなります。

4

1 に答える 1

1

コンピューティングとストレージの両方が特定のデータ センターに関連付けられています。グローバル コンピューティンググローバル ストレージの展開という概念はありません。

とは言っても、通常、人間向けのアプリ (Web アプリなど) は 1 つのデータ センターでホストします。通常、ブラウザーとサーバーの間で移動するデータの量が比較的少ない場合、ブラウザーとサーバーの間の待機時間はそれほど問題にはなりません。通常、帯域幅の大部分は、Web サーバーとアプリ サーバーおよび/またはデータベース インスタンスの間です。また、Azure では、必ずしもデータを Web アプリと同じデータ センターに配置する必要はありません (ただし、待機時間 + エグレス帯域幅のコストの観点からは理想的なシナリオです)。

複数のデータ センターでコンピューティングが必要な場合は、なんらかの種類の負荷分散を行う高レベルのメカニズム (Azure の Traffic Manager など) が必要になります。ただし、Traffic Manager の "最も近い" 設定を使用しても、フランスのユーザーが西ヨーロッパと北ヨーロッパのデータ センターにアクセスできるとは限りません。データセンターに訪問者が訪れることを常に計画する必要があります。これが、単一のデータ センターで Compute を処理する方がはるかに簡単である理由です。

データについて: コンピュートが単一のデータ センターにある場合、(災害復旧以外に) 複数のデータ センターにデータを書き込む必要はありません。Compute を複数のデータ センターにデプロイすることにした場合は、データを同期するための独自の方法が必要になります。Azure BLOB とテーブル ストレージの場合、操作がキュー ドリブンであるある種のコマンド パターン (CQRS など) を検討できます。これにより、異なるデータ センターにまたがる複数のストレージ アカウントに対して、キューに入れられた各データ操作を処理できます。

現在、データ主権の問題が発生している可能性があります。データは、地域に基づいて、特定の顧客の特定のデータ センターに存在する必要があります。繰り返しますが、これをアプリ レイヤーに実装する必要があります。これに関する考えの 1 つは、セットアップ時にユーザーを特定のデータ センターに関連付けることです (そして、データ センターのマッピングを Web 層と共に単一のデータベースに保存するだけです)。この時点で、訪問者がログインすると、正しいデータ センターを簡単に検索し、ブラウジング セッション内で特定のデータ センターからデータにアクセスできます。

于 2013-08-01T00:27:09.680 に答える