Sie haben einen Azure Cosmos DB SQL API-Container, der nach /customerId partitioniert ist. Wenn eine Bestellung aufgegeben wird, muss Ihr Dienst atomar vorgehen: (1) das Bestelldokument erstellen, (2) die openOrderCount des Kundenprofils aktualisieren und (3) das Warenkorbdokument des Kunden löschen. Alle drei Dokumente teilen denselben customerId-Wert. Sie möchten, dass alle Operationen entweder gemeinsam erfolgreich sind oder gemeinsam fehlschlagen, ohne serverseitige gespeicherte Prozeduren zu verwenden. Was sollten Sie tun?
Wählen Sie eine Antwort
Tippen Sie auf eine Option, um Ihre Antwort zu überprüfen.
Richtige Antwort: Verwenden Sie das TransactionalBatch des Azure Cosmos DB SDK, um Erstellungs-, Ersetzungs- und Löschvorgänge mit demselben PartitionKey-Wert, der dem customerId entspricht, auszuführen..
Warum dies die Antwort ist
Die Verwendung von TransactionalBatch im Azure Cosmos DB SDK ist die korrekte Lösung, da es atomare Operationen innerhalb eines einzelnen logischen Partitionsbereichs ermöglicht. Da alle drei Dokumente (Bestellung, Kundenprofil, Warenkorb) denselben customerId und somit denselben Partitionsschlüssel teilen, können diese Operationen als eine einzige Transaktion ausgeführt werden. Entweder alle Operationen sind erfolgreich oder keine, was die geforderte Atomarität gewährleistet. Die Aktivierung von kontoübergreifenden Transaktionen ist keine Standardfunktion in Cosmos DB und würde die Anforderung nicht erfüllen. Der Change Feed Processor ist für die Reaktion auf Änderungen gedacht, nicht für die Gewährleistung von Atomarität bei der Erstellung. Separate Anfragen mit ETags würden keine Atomarität über alle drei Operationen hinweg bieten; ein Fehler bei einer Operation würde nicht automatisch die anderen rückgängig machen.
Bestehen Sie Ihre Prüfung – ohne endlose Antwortsuche
Erhalten Sie jede verifizierte Frage und Erklärung für diese Prüfung an einem Ort und sparen Sie Stunden der Vorbereitung. Über 1.000 Zertifizierungen · Über 20 Sprachen · Kostenloser Start.
Bestehen Sie Ihre Prüfung schneller → Keine Karte erforderlich