Freigeben über


TransactionalBatchRequestOptions.SessionToken Eigenschaft

Definition

Ruft das Token für die Verwendung mit Sitzungskonsistenz im Azure Cosmos DB-Dienst ab oder legt es fest.

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

Eigenschaftswert

Das Token zur Verwendung mit Sitzungskonsistenz.

Hinweise

Eine der ConsistencyLevel für Azure Cosmos DB ist Session. Tatsächlich ist dies die Standardebene, die auf Konten angewendet wird.

Bei der Arbeit mit Sitzungskonsistenz wird jeder Batchanforderung mit Schreibvorgang an Azure Cosmos DB ein neues SessionToken zugewiesen. CosmosClient verwendet dieses Token intern bei jeder Lese-/Abfrage-/Batchanforderung, um sicherzustellen, dass die festgelegte Konsistenzebene beibehalten wird.

In einigen Szenarien müssen Sie diese Sitzung selbst verwalten. Betrachten Sie eine Webanwendung mit mehreren Knoten. Jeder Knoten verfügt über eine eigene instance von CosmosClient Wenn Sie möchten, dass diese Knoten an derselben Sitzung teilnehmen (um Ihre eigenen Schreibvorgänge konsistent über Webebenen hinweg lesen zu können), müssen Sie das SessionToken von TransactionalBatchResponse der Schreibaktion auf einem Knoten an die Clientebene senden, indem Sie ein Cookie oder einen anderen Mechanismus verwenden, und dieses Token für nachfolgende Lesevorgänge zurück zur Webebene fließen lassen. Wenn Sie einen Roundrobin-Lastenausgleich ohne Beibehaltung der Sitzungsaffinität zwischen Anforderungen verwenden, z. B. Azure Load Balancer, wird die Leseanforderung möglicherweise an einen anderen Knoten gesendet als an den für die Schreibanforderung verwendeten Knoten, auf dem die Sitzung erstellt wurde.

Wenn Sie das Azure Cosmos DB-Sitzungstoken nicht wie oben beschrieben weiterleiten, kann es sein, dass Sie für eine gewisse Zeit inkonsistente Leseergebnisse erhalten.

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

Gilt für: