Schrijfbewerkingen voor meerdere regio's configureren in uw toepassingen die gebruikmaken van Azure Cosmos DB

VAN TOEPASSING OP: NoSQL

In schrijfscenario's voor meerdere regio's kunt u prestatievoordelen behalen door alleen te schrijven naar de regio dicht bij uw toepassingsexemplaar. Azure Cosmos DB verwerkt de replicatie achter de schermen voor u.

Nadat u uw account voor meerdere schrijfregio's hebt ingeschakeld, moet u twee wijzigingen aanbrengen in uw toepassing in de ConnectionPolicy. Stel in op ConnectionPolicyUseMultipleWriteLocationstrue en geef de naam van de regio waar de toepassing is geïmplementeerd door aan .ApplicationRegion Met deze actie wordt de PreferredLocations eigenschap ingevuld op basis van de geografische nabijheid van de doorgegeven locatie. Als er later een nieuwe regio wordt toegevoegd aan het account, hoeft de toepassing niet te worden bijgewerkt of opnieuw geïmplementeerd. Het detecteert automatisch de dichtere regio en wordt automatisch in de buurt geplaatst als er een regionale gebeurtenis plaatsvindt.

Notitie

Azure Cosmos DB-accounts die in eerste instantie zijn geconfigureerd met één schrijfregio, kunnen worden geconfigureerd voor meerdere schrijfregio's zonder uitvaltijd. Zie Regio's met meerdere schrijfbewerkingen configureren voor meer informatie.

Azure Portal

Als u schrijfbewerkingen voor meerdere regio's wilt gebruiken, schakelt u uw Azure Cosmos DB-account in voor meerdere regio's met behulp van de Azure Portal. Geef op naar welke regio's uw toepassing mag schrijven.

Voer de volgende stappen uit om schrijfbewerkingen voor meerdere regio's in te schakelen:

  1. Meld u aan bij Azure Portal.

  2. Navigeer naar uw Azure Cosmos DB-account en open in het menu het deelvenster Gegevens globaal repliceren .

  3. Kies onder de optie Schrijfbewerkingen voor meerdere regio's de optie Inschakelen. De bestaande regio's worden automatisch toegevoegd om regio's te lezen en te schrijven.

  4. U kunt meer regio's toevoegen door de pictogrammen op de kaart te selecteren of door de knop Regio toevoegen te selecteren. Voor alle regio's die u toevoegt, zijn zowel lees- als schrijfbewerkingen ingeschakeld.

  5. Nadat u de regiolijst hebt bijgewerkt, selecteert u Opslaan om de wijzigingen toe te passen.

    Schermopname van het inschakelen van schrijfbewerkingen voor meerdere regio's met behulp van Azure Portal.

.NET-SDK v2

Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, stelt u in UseMultipleWriteLocations op true. Stel ook in SetCurrentLocation op de regio waarin de toepassing wordt geïmplementeerd en waar Azure Cosmos DB wordt gerepliceerd:

ConnectionPolicy policy = new ConnectionPolicy
    {
        ConnectionMode = ConnectionMode.Direct,
        ConnectionProtocol = Protocol.Tcp,
        UseMultipleWriteLocations = true
    };
policy.SetCurrentLocation("West US 2");

.NET-SDK v3

Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, stelt ApplicationRegion u in op de regio waarin de toepassing wordt geïmplementeerd en waar Azure Cosmos DB wordt gerepliceerd:

CosmosClient cosmosClient = new CosmosClient(
    "<connection-string-from-portal>", 
    new CosmosClientOptions()
    {
        ApplicationRegion = Regions.WestUS2,
    });

U kunt desgewenst de CosmosClientBuilder en WithApplicationRegion gebruiken om hetzelfde resultaat te bereiken:

CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
            .WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();

Java V4 SDK

Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, roept .multipleWriteRegionsEnabled(true) u aan en .preferredRegions(preferredRegions) in de clientbuilder, waarbij een List van de regio's is waarin preferredRegions de gegevens worden gerepliceerd op volgorde van voorkeur, idealiter de regio's met de kortste afstand/beste latentie:

Asynchrone API voor Java SDK V4 (Maven com.azure::azure-cosmos):


ArrayList<String> preferredRegions = new ArrayList<String>();
preferredRegions.add(region);

CosmosAsyncClient client =
        new CosmosClientBuilder()
                .endpoint(HOST)
                .key(MASTER_KEY)
                .multipleWriteRegionsEnabled(true)
                .preferredRegions(preferredRegions)
                .buildAsyncClient();

Asynchrone Java V2 SDK

De Java V2 SDK heeft de Maven com.microsoft.azure::azure-cosmosdb gebruikt. Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, stelt policy.setUsingMultipleWriteLocations(true) u de gegevens in en stelt policy.setPreferredLocations u deze in op de List van regio's die naar voorkeur worden gerepliceerd, idealiter de regio's met de kortste afstand/de beste latentie:

ConnectionPolicy policy = new ConnectionPolicy();
policy.setUsingMultipleWriteLocations(true);
policy.setPreferredLocations(Collections.singletonList(region));

AsyncDocumentClient client =
    new AsyncDocumentClient.Builder()
        .withMasterKeyOrResourceToken(this.accountKey)
        .withServiceEndpoint(this.accountEndpoint)
        .withConsistencyLevel(ConsistencyLevel.Eventual)
        .withConnectionPolicy(policy).build();

sdk's voor Node.js, JavaScript en TypeScript

Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, stelt u in connectionPolicy.UseMultipleWriteLocations op true. connectionPolicy.PreferredLocations Stel ook in op de regio's waar de gegevens naar worden gerepliceerd op volgorde van voorkeur, idealiter eerst de regio's met de kortste afstand/beste latentie:

const connectionPolicy: ConnectionPolicy = new ConnectionPolicy();
connectionPolicy.UseMultipleWriteLocations = true;
connectionPolicy.PreferredLocations = [region];

const client = new CosmosClient({
  endpoint: config.endpoint,
  auth: { masterKey: config.key },
  connectionPolicy,
  consistencyLevel: ConsistencyLevel.Eventual
});

Python-SDK

Als u schrijfbewerkingen voor meerdere regio's in uw toepassing wilt inschakelen, stelt u in connection_policy.UseMultipleWriteLocations op true. Stel ook in op de regio's waar de gegevens naar worden gerepliceerd op volgorde van voorkeur, connection_policy.PreferredLocations idealiter eerst de regio's met de kortste afstand/de beste latentie.

connection_policy = documents.ConnectionPolicy()
connection_policy.UseMultipleWriteLocations = True
connection_policy.PreferredLocations = [region]

client = cosmos_client.CosmosClient(self.account_endpoint, {
                                    'masterKey': self.account_key}, connection_policy, documents.ConsistencyLevel.Session)

Volgende stappen