我们有一个Web应用程序,它与托管在服务结构集群中的微服务进行对话(这意味着给定的服务可以托管在多个节点上)。微服务与文档DB集合交谈。可以说,我们有一个服务与独特的集合谈判。我们有批量处理,也可以利用这些微服务中的一些。我可以拥有多个documentDb集合的一致性模型吗?
我们希望在微服务中遵循UI相关请求的强一致性模型,以便用户不会对结果感到惊讶。由于非sql数据库在最终一致性方面表现最佳,因此我们希望为批处理使用最终的一致性。
- 是否有可能在documentDb中的collection/account级别选择最终一致性?
- 有了(1),我还可以为我的UI操作(来自微服务)选择强一致性吗?
我们只查找(1)和(2)同时为真的条件。
如果(1)和(2)同时出现,我该怎么办?
这似乎与我所要求的完全相反。这是否意味着我们首先必须将默认一致性设置为强,并在各个操作中使用最终一致性?或者我可以首先将默认一致性设置为最终一致性,并在各个操作中使用强一致性?或者两种选择都可能? – Raghu
是 - 首先将默认一致性设置为强,并在各个操作中使用最终一致性。一致性适用于读取操作 - https://docs.microsoft.com/en-us/azure/documentdb/documentdb-consistency-levels,写入操作总是提交仲裁(https://docs.microsoft.com/en- us/azure/documentdb/documentdb-distribute-data-global - “写入的等待时间保证包括在本地数据中心内持久的大多数仲裁提交” –