2017-03-14 17 views
1

Azureに配備されたかなり標準的な(Asp.Net Core)Webアプリケーションがあります。セッションアフィニティを使用していない複数のアプリケーションサーバーを使用しているため、同じユーザーが後続のリクエスト中に別のサーバーにアクセスする可能性があります。Azure DocumentDB分散Webアプリケーションの一貫性

私はAzure DocumentDBを使用して私のためにいくつかのデータストレージを処理したいと思います。使用パターンは、ログインした各ユーザーが毎分最大10回コマンドを発行してデータレコードを読み取り、更新することです。各ユーザーは1つのレコードを読み書きします。各ユーザーには独自のレコードがあります。

一貫性に関するDocumentDBのドキュメントを読んだ後、私はそれらがどのように動作するかについていくつかの質問を残しています。

私の要件は、ユーザーは関係なく、常に彼らがログインしている間に接続しているのAppServerの、レコードの最新バージョンを読まなければならない

  1. ある。
  2. ユーザーがログアウトし、再度ログインするとある時点で(30秒、1時間の可能性があります)、レコードの最新バージョンを読み取る必要があります。これには、発生した可能性のある書き込みも含まれます。
  3. 私はDocumentDbの地域的なフェイルオーバー機能が必要です。これは、「Strong」コンシステンシーレベルを排除していると思われます。

「セッション」整合性を使用する必要があると思っていますが、WebファームシナリオのコンテキストでSessionTokenを処理する方法がわかりません。

私はセッショントークンをクッキーとして保存することができますが、DocumentDBの「セッション」の寿命はどのくらいですか?ドキュメントはこれについて黙っているようです。また、ユーザーがログアウトしてログインしてセッションが終了した場合はどうなりますか?

DocumentDB内の書き込みがどのように複製されているのか、おそらくDocumentDBの読み取り/書き込み領域がどのように設定されているのかを完全に理解していないのでしょうか?

プライマリデータセンター領域に1つのプライマリ読み取り/書き込みDocumentDBがあり、別の領域にセカンダリの "読み取り" DocumentDBがある場合、その整合性とフェールオーバーの要件に対処していますか?

どのような説明があれば幸いです!

+0

詳細については、 –

答えて

2

DocumentDBセッショントークンは期限切れになりません。クッキーのパターンに確実に従うことで、ログイン/ログアウトの間のユーザーの強い一貫性を保証することができます。アカウントが制限された状態でセットアップされている場合は、アカウントの書き込み領域からのみ読み取る2番目のDocumentClientを使用して、強力な読み取りを保証することもできます。

+0

について議論したい場合は、マイクロソフトのドットコムに電子メールでお問い合わせください。読んでください...同じ領域内に常に強い整合性がありますか?だから、私は一貫性を心配する必要はありません単一の地域を使用する限り?その場合、フェールオーバーイベント中にセカンダリリージョンからのみ読み込みます。 – user1142433

+0

あなたのアカウントが制限付きの陳腐化を使用している場合は、はい。私の回答 –

+0

を編集しました。マルチリージョン展開のためにBounded Stalenessを設定するには、少なくとも10万回の遅延操作を許可する必要があります。それはレプリカ領域だけですか?私はhttps://docs.microsoft.com/en-us/azure/documentdb/documentdb-consistency-levelsを読んできました。プライマリリージョンからの読み取り操作には、「Bounded Staleness "の設定です。 – user1142433

関連する問題