Delen via


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 krijgen door alleen naar de regio dicht bij uw toepassingsexemplaren te schrijven. 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 in uw toepassing aanbrengen in de ConnectionPolicy. Stel true UseMultipleWriteLocations in de omgeving de ConnectionPolicynaam in van de regio waarin de toepassing is geïmplementeerd ApplicationRegionen geef deze door. Met deze actie wordt de PreferredLocations eigenschap ingevuld op basis van de geografische nabijheid van de locatie die is doorgegeven. Als er later een nieuwe regio wordt toegevoegd aan het account, hoeft de toepassing niet meer te worden bijgewerkt of opnieuw geïmplementeerd. Het detecteert automatisch de dichtere regio en auto-homes naar het geval 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 met een nultijd. Zie regio's voor 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 Azure Portal. Geef op naar welke regio's uw toepassing kan schrijven.

Als u schrijfbewerkingen voor meerdere regio's wilt inschakelen, gebruikt u de volgende stappen:

  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 inschakelen onder de optie Schrijfbewerkingen voor meerdere regio's. De bestaande regio's worden automatisch toegevoegd aan lees- en schrijfregio's.

  4. U kunt meer regio's toevoegen door de pictogrammen op de kaart te selecteren of door de knop Regio toevoegen te selecteren. Alle regio's die u toevoegt, hebben 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 in meerdere regio's met behulp van Azure Portal.

.NET-SDK v2

Als u schrijfbewerkingen in meerdere regio's in uw toepassing wilt inschakelen, stelt u deze optie 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 hetzelfde CosmosClientBuilder resultaat gebruiken en WithApplicationRegion hetzelfde resultaat bereiken:

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

Java V4 SDK

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

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


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

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

Async 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 deze in en stelt policy.setPreferredLocations u deze in op de List regio's in op volgorde van voorkeur, in het ideale voorbeeld de regio's met de kortste afstand/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();

Node.js, JavaScript en TypeScript SDK's

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

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 in meerdere regio's in uw toepassing wilt inschakelen, stelt u deze optie in connection_policy.UseMultipleWriteLocations op true. connection_policy.PreferredLocations Stel ook in op de regio's waar de gegevens naar voorkeur worden gerepliceerd: idealiter de regio's met de kortste afstand/beste latentie eerst.

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