Azure Cosmos DB 和 API for MongoDB 的一致性级别

适用对象: MongoDB

与 Azure Cosmos DB 不一样,本机 MongoDB 并不提供精确定义的一致性保证。 与之相反,本机 MongoDB 允许用户配置下述一致性保证:写入关注、读取关注以及 isMaster 指令 - 目的是将读取操作定向到主副本或辅助副本,以便实现所需的一致性级别。

使用 Azure Cosmos DB 的 API for MongoDB 时,MongoDB 驱动程序会将写入区域视为主副本,所有其他区域为读取副本。 可以选择将哪个与 Azure Cosmos DB 帐户关联的区域作为主要副本。

注意

Azure Cosmos DB 的默认一致性模型是会话。 会话是一种以客户端为中心的一致性模型,未受到 Cassandra 或 MongoDB 的本机支持。 有关选择哪种一致性模型的详细信息,请参阅 Azure Cosmos DB 中的一致性级别

在使用 Azure Cosmos DB 的 API for MongoDB 时:

  • 写入关注会映射到在 Azure Cosmos DB 帐户上配置的默认一致性级别。

  • Azure Cosmos DB 会将 MongoDB 客户端驱动程序指定的读取关注动态映射到根据读取请求动态配置的某个 Azure Cosmos DB 一致性级别。

  • 可以将与 Azure Cosmos DB 帐户关联的特定区域批注为“主要区域”,方法是将该区域设置为第一个可写区域。

映射一致性级别

下表演示了在使用 Azure Cosmos DB 的 API for MongoDB 时,如何将本机 MongoDB 写入/读取关注映射到 Azure Cosmos 的一致性级别:

MongoDB consistency model mapping

如果使用强一致性以外的一致性级别配置 Azure Cosmos DB 帐户,则可以通过查看“概率有限过期”(PBS) 指标,找到客户端获得工作负荷的强一致读取的概率。 此指标在 Azure 门户中公开,若要了解详细信息,请参阅监视概率有限过期性 (PBS) 指标

概率有限过期表明了最终一致的最终程度。 通过此指标可深入了解在 Azure Cosmos DB 帐户中获得比目前配置的一致性级别更强一致性的频率。 换句话说,可看到获得写入和读取区域组合的非常一致读取的概率(以毫秒计量)。

后续步骤

详细了解 Azure Cosmos DB 的多区域分布和一致性级别: