我有一个非常标准的(Asp.Net Core)Web应用程序,它部署在Azure中。我使用多个不使用会话亲缘关系的应用服务器,因此同一用户可能会在后续请求期间点击不同的服务器。
我想使用Azure DocumentDB为我处理一些数据存储。使用模式是每个登录用户每分钟最多发出10次命令,然后读取并更新数据记录。每个用户将读写一条记录。每个用户都有自己的记录。
在阅读了有关一致性的DocumentDB文档后,我留下了一些关于它们如何工作的问题。
我的要求是
我认为我需要使用" Session"一致性,但我不确定如何在Web场方案的上下文中处理SessionToken。
我想我可以将SessionToken存储为cookie,但是DocumentDB"会话的生命周期是什么?#34;?文档似乎对此保持沉默。此外,如果用户退出并重新登录并且会话已过期,会发生什么?
也许我不完全了解如何在DocumentDB中复制写入,也许还有解决所有这些问题的解决方案是如何配置DocumentDB的读/写区域的?
如果我的主要数据中心区域有一个主要的读/写DocumentDB,而且有一个辅助"读取"另一个地区的DocumentDB是否符合我的一致性和故障转移要求?
非常感谢任何澄清!
答案 0 :(得分:2)
DocumentDB会话令牌永不过期。您当然可以遵循cookie模式,以确保用户跨登录/注销的强一致性。如果帐户设置为有限的陈旧性,您还可以使用仅从帐户的写入区域读取的第二个DocumentClient来保证强读取。