首页 > 解决方案 > 在 Azure CosmosDB Cassandra API 中设置读取操作的一致性级别

问题描述

我正在编写一个连接到 Microsoft Azure CosmosDB 中的 Cassandra 数据库的 Java 应用程序。根据https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-manage-consistency上的文档页面,cosmosdb 可以选择设置读取操作的一致性级别。但是,在使用 cassandra 的 SQL API 时,我无法找到如何执行此操作的示例。我正在扩展 Microsoft 在https://github.com/Azure-Samples/azure-cosmos-db-cassandra-java-getting-started提供的示例。该示例使用 datastax 驱动程序 cassandra。

是否可以使用此驱动程序设置一致性级别?

标签: javaazure-cosmosdbazure-cosmosdb-sqlapiazure-cosmosdb-cassandra-api

解决方案


在您提供的源代码中找不到任何关于一致性设置的内容。实际上,Azure Cosmos DB 的 Cassandra API 一致性级别的机制不同于其他 cosmos db api(如 SQL api、Gremlin api 等)

请阅读此链接中的声明。

使用 Azure Cosmos DB 的 Cassandra API 时:

  • Apache Cassandra 的写入一致性级别映射到 Azure Cosmos 帐户上配置的默认一致性级别。
  • Azure Cosmos DB 会将 Cassandra 客户端驱动程序指定的读取一致性级别动态映射到在读取请求上动态配置的 Azure Cosmos DB 一致性级别之一。

所以,根据我的理解,cosmos db的一致性并不会干扰你驱动原有的一致性设置,而是按照下表进行映射:</p>

在此处输入图像描述

您可以设置与 DataStax 驱动程序的一致性,参考此链接


推荐阅读