首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Cosmos DB (SQL ) ConsistencyLevel回退ItemRequestOptions

Azure Cosmos DB (SQL ) ConsistencyLevel回退ItemRequestOptions
EN

Stack Overflow用户
提问于 2021-07-28 09:29:55
回答 1查看 180关注 0票数 1

我正在使用Microsoft.Azure.Cosmos SDK (用于SQL )从Azure中读取项。在这个SDK下,在读取条目(使用container.ReadItemAsync)时,我们可以在以下两个位置覆盖默认的consistencyLevel (在Azure门户中的数据库级别上设置):

  1. 在创建CosmosClient时,可以在CosmosClientOptions下指定ConsistencyLevel。该属性的文档是:“汇总:可以用来削弱数据库帐户一致性级别,用于读取操作。如果没有设置,数据库帐户一致性级别将用于触发container.ReadItemAsync请求的所有container.ReadItemAsync,我们可以在ItemRequestOptions下指定ConsistencyLevel。属性的文档是:“汇总:获取或设置Azure Cosmos DB服务中请求所需的一致性级别。虽然这是在数据库帐户级别设置的,但Azure Cosmos DB允许开发人员覆盖每个单个请求的默认一致性级别。”

这两个属性都表明它们覆盖在数据库帐户级别(从Azure门户)指定的默认一致性。

现在,如果在数据库帐户级别(在Azure门户中)的默认一致性为“强”,并且在创建CosmosClient (使用CosmosClientOptions)时将一致性级别重写为“会话”,如下所示:

代码语言:javascript
复制
var clientOption = new CosmosClientOptions
            {
                ConsistencyLevel = ConsistencyLevel.Session              
            };
var cosmosClient = new CosmosClient(connectionString, clientOption);

现在,当我尝试使用container.ReadItemAsync读取一个条目时(使用我刚刚创建的CosmosClient获取的容器),并且在ItemRequestOptions下面不指定任何ConsistencyLevel,如下所示:

代码语言:javascript
复制
var itemRequestOptions = new ItemRequestOptions();
container.ReadItemAsync<string>(id, partitionKey, itemRequestOptions)

那么,执行读取操作(强操作还是会话操作)的一致性级别是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-28 15:25:04

一致性将是会议。

这很容易通过检查RU的读取费用来检查。对于1kb或更少使用强一致性的数据,ReadItemsAsync()将是2RU/s,因为使用强一致性的读取是针对2个副本进行的。当使用会话或较弱的一致性时,读取是在单个副本上完成的,因此只需花费1个RU/s。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68557805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档