Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: NoSQL
I skrivscenarier med flera regioner kan du få en prestandaförmån genom att bara skriva till regionen nära programinstansen. Azure Cosmos DB hanterar replikeringen åt dig i bakgrunden.
När du har aktiverat ditt konto för flera skrivregioner måste du göra två ändringar i programmet till ConnectionPolicy. Inom ConnectionPolicy anger du UseMultipleWriteLocations till true och skickar namnet på den region där programmet distribueras till ApplicationRegion. Den här åtgärden fyller egenskapen PreferredLocations baserat på geografisk närhet från den angivna platsen. Om en ny region senare läggs till i kontot behöver programmet inte uppdateras eller distribueras om. Den identifierar automatiskt den närmare regionen och autofokuserar på den om en regional händelse inträffar.
Anteckning
Azure Cosmos DB-konton som ursprungligen konfigurerats med en enda skrivregion kan konfigureras till flera skrivregioner med noll nedtid. Mer information finns i Konfigurera flera skrivregioner.
Azure Portal
Om du vill använda skrivningar i flera regioner aktiverar du ditt Azure Cosmos DB-konto för flera regioner med hjälp av Azure Portal. Ange vilka regioner programmet kan skriva till.
Logga in på Azure-portalen.
Gå till ditt Azure Cosmos DB-konto. Öppna fönstret Replikera data globalt på menyn.
Under alternativet Skrivningar i flera regioner, välj Aktivera. De redan befintliga regionerna läggs automatiskt till som läs- och skrivregioner.
Du kan lägga till fler regioner genom att välja ikonerna på kartan eller genom att välja knappen Lägg till region . Alla regioner som du lägger till har både läs- och skrivåtgärder aktiverade.
När du har uppdaterat regionlistan väljer du Spara för att tillämpa ändringarna.
.NET SDK v2
Om du vill aktivera skrivningar i flera regioner i ditt program anger du UseMultipleWriteLocations till true.
SetCurrentLocation Ange också till den region där programmet distribueras och där Azure Cosmos DB replikeras:
ConnectionPolicy policy = new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
UseMultipleWriteLocations = true
};
policy.SetCurrentLocation("West US 2");
.NET SDK v3
Om du vill aktivera skrivningar i flera regioner i ditt program anger du ApplicationRegion till den region där programmet distribueras och där Azure Cosmos DB replikeras:
CosmosClient cosmosClient = new CosmosClient(
"<connection-string-from-portal>",
new CosmosClientOptions()
{
ApplicationRegion = Regions.WestUS2,
});
Du kan också använda CosmosClientBuilder och WithApplicationRegion för att uppnå samma resultat:
CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
.WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();
Java V4 SDK
För att aktivera skrivningar i flera regioner i ditt program, anropar du .multipleWriteRegionsEnabled(true) och .preferredRegions(preferredRegions) i klientverktyget, där preferredRegions är en List av de regioner till vilka data replikeras, ordnade efter önskemål. Helst visas de regioner med kortast avstånd eller bästa svarstid först:
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
Java V2 SDK använder Maven com.microsoft.azure::azure-cosmosdb. Om du vill aktivera skrivningar i flera regioner i ditt program anger du policy.setUsingMultipleWriteLocations(true) och anger policy.setPreferredLocations till de List regioner som data replikeras till, ordnade efter preferens. Helst visas de regioner med kortast avstånd eller bästa svarstid först:
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:er för Node.js, JavaScript och TypeScript
Om du vill aktivera skrivningar i flera regioner i ditt program anger du connectionPolicy.UseMultipleWriteLocations till true. Ange också connectionPolicy.PreferredLocations till de regioner som data replikeras till som är ordnade efter prioritet. Helst visas de regioner med kortast avstånd eller bästa svarstid först:
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
Om du vill aktivera skrivningar i flera regioner i ditt program anger du connection_policy.UseMultipleWriteLocations till true. Ange också de regioner som data replikeras till, ordnade efter prioritet. Helst visas de regioner med kortast avstånd eller bästa svarstid först:
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)
Go-mjukvaruutvecklingskit
Om du vill aktivera flera regioner i ditt program använder du PreferredRegions i ClientOptions:
client, err := azcosmos.NewClient(endpoint, token, &azcosmos.ClientOptions{
PreferredRegions: []string{"West US", "Central US"},
})
Nästa steg
- Använd sessionstoken för att hantera konsistens i Azure Cosmos DB
- Konflikttyper och lösningsprinciper när du använder flera skrivregioner