قم بتكوين عمليات الكتابة متعددة المناطق في تطبيقاتك التي تستخدم Azure Cosmos DB
ينطبق على:
واجهة برمجة تطبيقات SQL
بمجرد إنشاء حساب مع تمكين مناطق كتابة متعددة، يجب إجراء تغييرين في التطبيق الخاص بك إلى نهج الاتصال لعميل Cosmos لتمكين عمليات الكتابة متعددة المناطق في Azure Cosmos DB. ضمن نهج الاتصال قم بتعيين مواقع كتابة متعددة الاستخدام إلى صحيح وقم بتمرير اسم المنطقة التي تم نشر التطبيق فيها إلى منطقة التطبيق. سيؤدي هذا إلى ملء خاصية المواقع المفضلة بناءً على القرب الجغرافي من الموقع الذي تم تمريره. إذا تمت إضافة منطقة جديدة لاحقاً إلى الحساب، فلا يلزم تحديث التطبيق أو إعادة نشره، وسوف يكتشف تلقائياً المنطقة الأقرب وسيعود تلقائياً إلى المنزل في حالة وقوع حدث إقليمي.
ملاحظة
يمكن تكوين حسابات Cosmos التي تم تكوينها مبدئياً بمنطقة كتابة واحدة لمناطق كتابة متعددة دون وقت تعطل. لمعرفة المزيد، راجع تكوين مناطق الكتابة المتعددة
مدخل Azure
لتمكين عمليات الكتابة متعددة المناطق من بوابة Azure، استخدم الخطوات التالية:
سجّل الدخول إلى بوابة Azure.
انتقل إلى حساب Azure Cosmos الخاص بك ومن القائمة، افتح الجزء تكرار البيانات عالمياً.
ضمن الخيار عمليات الكتابة متعددة المناطق، اختر تمكين . يقوم تلقائياً بإضافة المناطق الموجودة لقراءة وكتابة المناطق.
يمكنك إضافة مناطق إضافية بتحديد الرموز على الخريطة أو بتحديد الزر إضافة منطقة. سيتم تمكين القراءة والكتابة في جميع المناطق التي تضيفها.
بعد تحديث قائمة المناطق، حدد حفظ لتطبيق التغييرات.
.NET SDK v2
لتمكين عمليات الكتابة متعددة المناطق في التطبيق الخاص بك، قم بتعيين UseMultipleWriteLocationsعلىtrue. أيضاً، قم بتعيين SetCurrentLocationعلى المنطقة التي يتم نشر التطبيق فيها والتي يتم فيها نسخ Azure Cosmos DB:
ConnectionPolicy policy = new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
UseMultipleWriteLocations = true
};
policy.SetCurrentLocation("West US 2");
.NET SDK v3
لتمكين عمليات الكتابة متعددة المناطق في تطبيقك، عيّن ApplicationRegionعلى المنطقة التي يتم فيها نشر التطبيق وحيث يتم نسخ Cosmos DB:
CosmosClient cosmosClient = new CosmosClient(
"<connection-string-from-portal>",
new CosmosClientOptions()
{
ApplicationRegion = Regions.WestUS2,
});
اختيارياً، يمكنك استخدام CosmosClientBuilderوWithApplicationRegion لتحقيق نفس النتيجة:
CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
.WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();
Java V4 SDK
لتمكين عمليات الكتابة متعددة المناطق في تطبيقك، اتصل بـ .multipleWriteRegionsEnabled(true)و.preferredRegions(preferredRegions) في أداة إنشاء العميل، حيث preferredRegionsعبارة عن List تحتوي على عنصر واحد - وهي المنطقة التي يتم نشر التطبيق وحيث يتم نسخ Cosmos DB:
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();
Async Java V2 SDK
استخدمت Java V2 SDK Maven com.microsoft.azure::azure-cosmosdb. لتمكين عمليات الكتابة متعددة المناطق في تطبيقك، قم بتعيين policy.setUsingMultipleWriteLocations(true)وتعيينpolicy.setPreferredLocations على المنطقة التي يتم فيها نشر التطبيق وحيث يتم نسخ Cosmos DB:
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 لـ Node.js وJavaScript وTypeScript
لتمكين عمليات الكتابة متعددة المناطق في التطبيق الخاص بك، قم بتعيين connectionPolicy.UseMultipleWriteLocationsعلىtrue. أيضاً، قم بتعيين connectionPolicy.PreferredLocationsعلى المنطقة التي يتم نشر التطبيق فيها والتي يتم فيها نسخ Cosmos DB:
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
لتمكين عمليات الكتابة متعددة المناطق في التطبيق الخاص بك، قم بتعيين connection_policy.UseMultipleWriteLocationsعلىtrue. أيضاً، قم بتعيين connection_policy.PreferredLocationsعلى المنطقة التي يتم نشر التطبيق فيها والتي يتم فيها نسخ Cosmos DB.
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)
الخطوات التالية
اقرأ المقالات التالية:
- استخدام الرموز المميزة للجلسة لإدارة التناسق في Azure Cosmos DB
- أنواع التعارض ونهج الحل في Azure Cosmos DB
- توفر عالٍ في Azure Cosmos DB
- مستويات التناسق في قاعدة بيانات Azure Cosmos DB
- اختر مستوى التناسق الصحيح في Azure Cosmos DB
- مقايضات الاتساق والتوافر والأداء في Azure Cosmos DB
- التوفر ومفاضلة الأداء لمختلف مستويات الاتساق
- زيادة الإنتاجية المقدمة عالمياً
- التوزيع العالمي - الميزة الداخلية
