Azureに配備されたかなり標準的な(Asp.Net Core)Webアプリケーションがあります。セッションアフィニティを使用していない複数のアプリケーションサーバーを使用しているため、同じユーザーが後続のリクエスト中に別のサーバーにアクセスする可能性があります。Azure DocumentDB分散Webアプリケーションの一貫性
私はAzure DocumentDBを使用して私のためにいくつかのデータストレージを処理したいと思います。使用パターンは、ログインした各ユーザーが毎分最大10回コマンドを発行してデータレコードを読み取り、更新することです。各ユーザーは1つのレコードを読み書きします。各ユーザーには独自のレコードがあります。
一貫性に関するDocumentDBのドキュメントを読んだ後、私はそれらがどのように動作するかについていくつかの質問を残しています。
私の要件は、ユーザーは関係なく、常に彼らがログインしている間に接続しているのAppServerの、レコードの最新バージョンを読まなければならない
- ある。
- ユーザーがログアウトし、再度ログインするとある時点で(30秒、1時間の可能性があります)、レコードの最新バージョンを読み取る必要があります。これには、発生した可能性のある書き込みも含まれます。
- 私はDocumentDbの地域的なフェイルオーバー機能が必要です。これは、「Strong」コンシステンシーレベルを排除していると思われます。
「セッション」整合性を使用する必要があると思っていますが、WebファームシナリオのコンテキストでSessionTokenを処理する方法がわかりません。
私はセッショントークンをクッキーとして保存することができますが、DocumentDBの「セッション」の寿命はどのくらいですか?ドキュメントはこれについて黙っているようです。また、ユーザーがログアウトしてログインしてセッションが終了した場合はどうなりますか?
DocumentDB内の書き込みがどのように複製されているのか、おそらくDocumentDBの読み取り/書き込み領域がどのように設定されているのかを完全に理解していないのでしょうか?
プライマリデータセンター領域に1つのプライマリ読み取り/書き込みDocumentDBがあり、別の領域にセカンダリの "読み取り" DocumentDBがある場合、その整合性とフェールオーバーの要件に対処していますか?
どのような説明があれば幸いです!
詳細については、 –