java - 在 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。
是否可以使用此驱动程序设置一致性级别?
解决方案
在您提供的源代码中找不到任何关于一致性设置的内容。实际上,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 驱动程序的一致性,参考此链接。
推荐阅读
- python - 如何将唯一的班级成员添加到另一个班级
- php - $.getJSON 没有正确返回([object Object],未定义或什么都没有)
- java - 如何在 Spring Boot 中访问 kafka 流上下文之外的 GlobalKTable?
- python - pandas:具有条件公式和唯一值的 groupby
- android - 如何在 Jetpack Compose 中打开表情符号键盘?
- amazon-web-services - 为什么使用多容器端点而不是多模型端点?
- javascript - 未捕获的 DOMException:无法在“窗口”上执行“postMessage”:无法克隆 NodeList 对象
- python - Python循环在循环中保存两次到Excel电子表格选项卡
- c# - 使用 Mailgun 和 Httpclient 发送带有附件的电子邮件
- swift - 如何禁用 UIStackView 默认显示/隐藏动画?