【问题标题】:CosmosDB - Consistency levels for a Multiregion collectionCosmos DB - 多区域集合的一致性级别
【发布时间】:2020-05-18 14:06:42
【问题描述】:

我有一个存储用户信息的USER 集合。每个项目都会有这 3 个字段:

-UserID
-Username
-Email

如果将来我需要在不同区域提供此集合,我知道有 5 种不同的一致性级别(强、有限过时、会话、一致前缀和最终一致性)。如果我想保证两个不同区域中的两个用户不会同时创建同一个用户(使用相同的useridusernameemail)是我唯一的选择,那么强一致性?

一个后续问题;如果我将此集合设置为强,我的所有其他集合是否也必须是强的,或者我可以将不同集合的一致性级别设置为不同的级别(例如,USER 集合是强的,POSTS 是最终的)?

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    Multi-master 只能配置为弱于强一致性。因此,CosmosDB 无法阻止两个不同的区域同时创建同一个用户,但它使您能够进行冲突解决当发生此类冲突时,您可以使用不同的冲突解决策略来解决冲突。 https://docs.microsoft.com/en-us/azure/cosmos-db/conflict-resolution-policies

    您可以随时在 Azure Cosmos 帐户上配置默认一致性级别。在你的帐户上配置的默认一致性级别适用于该帐户下的所有 Azure Cosmos 数据库和容器。默认情况下,针对容器或数据库发出的所有读取和查询都使用指定的一致性级别。

    可以为每个请求设置一致性级别,这会覆盖在帐户级别设置的默认一致性级别。但是客户端覆盖只能弱于账户级别配置的默认一致性级别。

    如果您需要特定于集合的默认一致性级别,则应将具有相同默认一致性级别需求的集合放在一个帐户中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多