你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

TransactionalBatchRequestOptions.SessionToken 属性

定义

获取或设置用于 Azure Cosmos DB 服务中的会话一致性的令牌。

public string SessionToken { get; set; }
member this.SessionToken : string with get, set
Public Property SessionToken As String

属性值

用于会话一致性的令牌。

注解

Azure Cosmos DB 的 ConsistencyLevel 其中一个是会话。 事实上,这是应用于帐户的默认级别。

使用会话一致性时,向 Azure Cosmos DB 执行写入操作的每个批处理请求都会分配一个新的 SessionToken。 CosmosClient 将在内部将此令牌用于每个读取/查询/批处理请求,以确保保持设置的一致性级别。

在某些情况下,需要自行管理此会话;请考虑具有多个节点的 Web 应用程序,每个节点都有自己的 实例 CosmosClient ,如果希望这些节点参与同一会话 (能够跨 Web 层一致地读取自己的写入) 则必须将 SessionToken 从 TransactionalBatchResponse 一个节点上的写入操作发送到客户端层, 使用 Cookie 或其他一些机制,并让该令牌流回到 Web 层进行后续读取。 如果你使用的轮循机制负载均衡器(如 Azure 负载均衡器)不在请求之间维护会话亲和性,读取可能会落在与写入请求不同的节点上(已在其中创建会话)。

如果没有如上所述传递 Azure Cosmos DB SessionToken,你可能会在一段时间内得到不一致的读取结果。

https://docs.microsoft.com/azure/cosmos-db/consistency-levels

适用于