Többrégiós írások konfigurálása az Azure Cosmos DB-t használó alkalmazásokban
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Több régió írási forgatókönyvében teljesítménybeli előnyhöz juthat, ha csak az alkalmazáspéldányhoz közeli régióba ír. Az Azure Cosmos DB kezeli a replikációt a színfalak mögött.
Miután engedélyezte a fiókját több írási régióban, két módosítást kell végrehajtania az alkalmazásban a ConnectionPolicy
. ConnectionPolicy
A területen belül állítsa be true
UseMultipleWriteLocations
és adja meg annak a régiónak a nevét, amelyben az alkalmazás üzembe van helyezveApplicationRegion
. Ez a művelet feltölti a tulajdonságot az PreferredLocations
átadott hely földrajzi közelsége alapján. Ha később hozzáad egy új régiót a fiókhoz, az alkalmazást nem kell frissíteni vagy újra üzembe helyezni. Automatikusan észleli a közelebbi régiót és az automatikus otthonokat, ha regionális esemény történik.
Feljegyzés
Az eredetileg egy írási régióval konfigurált Azure Cosmos DB-fiókok több írási régióra is konfigurálhatók nulla leállási idővel. További információ: Több írási régió konfigurálása.
Azure Portal
Többrégiós írások használatához engedélyezze az Azure Cosmos DB-fiókját több régióhoz az Azure Portal használatával. Adja meg, hogy az alkalmazás mely régiókba írhat.
A többrégiós írás engedélyezéséhez kövesse az alábbi lépéseket:
Jelentkezzen be az Azure Portalba.
Lépjen az Azure Cosmos DB-fiókjához, és a menüből nyissa meg az Adatok globális replikálása panelt .
A Többrégiós írási beállításnál válassza az Engedélyezés lehetőséget. Automatikusan hozzáadja a meglévő régiókat az olvasási és írási régiókhoz.
További régiókat a térkép ikonjaira kattintva vagy a Régió hozzáadása gombra kattintva vehet fel. Az összes hozzáadott régióban engedélyezve van az olvasás és az írás.
A régiólista frissítése után válassza a Mentés lehetőséget a módosítások alkalmazásához.
.NET SDK v2
Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, állítsa a következőre UseMultipleWriteLocations
true
: . Állítsa be SetCurrentLocation
azt a régiót is, amelyben az alkalmazás üzembe van helyezve, és ahol az Azure Cosmos DB replikálva van:
ConnectionPolicy policy = new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
UseMultipleWriteLocations = true
};
policy.SetCurrentLocation("West US 2");
.NET SDK v3
Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, állítsa be ApplicationRegion
azt a régiót, amelyben az alkalmazás üzembe van helyezve, és ahol az Azure Cosmos DB replikálva van:
CosmosClient cosmosClient = new CosmosClient(
"<connection-string-from-portal>",
new CosmosClientOptions()
{
ApplicationRegion = Regions.WestUS2,
});
Igény szerint használhatja a CosmosClientBuilder
következőt, és WithApplicationRegion
ugyanezt az eredményt érheti el:
CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
.WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();
Java V4 SDK
Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, a hívásban .multipleWriteRegionsEnabled(true)
és .preferredRegions(preferredRegions)
az ügyfélszerkesztőben, ahol preferredRegions
az List
adatok sorrendbe vannak replikálva– ideális esetben a legrövidebb távolsággal/legjobb késéssel rendelkező régiókra:
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
A Java V2 SDK a Maven com.microsoft.azure::azure-cosmosdb szolgáltatást használta. Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, állítsa be policy.setUsingMultipleWriteLocations(true)
és állítsa be policy.setPreferredLocations
azokat a List
régiókat, amelyekbe az adatok a beállítások szerint lesznek replikálva – ideális esetben a legrövidebb távolsággal/legjobb késéssel rendelkező régiókra:
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 és TypeScript SDK-k
Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, állítsa a következőre connectionPolicy.UseMultipleWriteLocations
true
: . Emellett állítsa be connectionPolicy.PreferredLocations
azokat a régiókat is, amelyekbe az adatok a beállítások szerint lesznek replikálva – ideális esetben azokat a régiókat, ahol a legrövidebb a távolság/a legjobb késés:
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
Ha engedélyezni szeretné a többrégiós írásokat az alkalmazásban, állítsa a következőre connection_policy.UseMultipleWriteLocations
true
: . Emellett állítsa be connection_policy.PreferredLocations
azokat a régiókat, amelyekbe az adatokat a rendszer a beállítások szerint rendezi – ideális esetben a legrövidebb távolsággal/legjobb késéssel rendelkező régiókat.
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)