Mengonfigurasi penulisan beberapa wilayah di aplikasi Anda yang menggunakan Azure Cosmos DB
BERLAKU UNTUK: NoSQL
Dalam skenario penulisan beberapa wilayah, Anda bisa mendapatkan manfaat performa dengan menulis hanya ke wilayah yang dekat dengan instans aplikasi Anda. Azure Cosmos DB menangani replikasi untuk Anda di belakang layar.
Setelah mengaktifkan akun untuk beberapa wilayah tulis, Anda harus membuat dua perubahan dalam aplikasi Anda ke ConnectionPolicy
. ConnectionPolicy
Dalam , atur UseMultipleWriteLocations
ke true
dan berikan nama wilayah tempat aplikasi disebarkan ke ApplicationRegion
. Tindakan ini mengisi PreferredLocations
properti berdasarkan kedekatan geografis dari lokasi yang diteruskan. Jika wilayah baru kemudian ditambahkan ke akun, aplikasi tidak harus diperbarui atau disebarkan ulang. Ini secara otomatis mendeteksi wilayah yang lebih dekat dan rumah otomatis di wilayah tersebut jika terjadi peristiwa regional.
Catatan
Akun Azure Cosmos DB yang awalnya dikonfigurasi dengan wilayah tulis tunggal dapat dikonfigurasi ke beberapa wilayah tulis dengan waktu henti nol. Untuk mempelajari selengkapnya, lihat Mengonfigurasi wilayah multi-tulis.
Portal Azure
Untuk menggunakan penulisan multi-wilayah, aktifkan akun Azure Cosmos DB Anda untuk beberapa wilayah dengan menggunakan portal Azure. Tentukan wilayah mana yang dapat ditulis aplikasi Anda.
Untuk mengaktifkan penulisan multi-wilayah, gunakan langkah-langkah berikut:
Masuk ke portal Microsoft Azure.
Navigasi ke akun Azure Cosmos DB Anda dan dari menu, buka panel Replikasi data secara global.
Di bawah opsi Penulisan multi-wilayah, pilih aktifkan. Ini secara otomatis menambahkan wilayah yang ada untuk membaca dan menulis wilayah.
Anda dapat menambahkan lebih banyak wilayah dengan memilih ikon di peta atau dengan memilih tombol Tambahkan wilayah . Semua wilayah yang Anda tambahkan mengaktifkan baca dan tulis.
Setelah Anda memperbarui daftar wilayah, pilih Simpan untuk menerapkan perubahan.
.NET SDK v2
Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, atur UseMultipleWriteLocations
ke true
. Juga, SetCurrentLocation
atur ke wilayah di mana aplikasi sedang digunakan dan di mana Azure Cosmos DB direplikasi:
ConnectionPolicy policy = new ConnectionPolicy
{
ConnectionMode = ConnectionMode.Direct,
ConnectionProtocol = Protocol.Tcp,
UseMultipleWriteLocations = true
};
policy.SetCurrentLocation("West US 2");
.NET SDK v3
Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, atur ApplicationRegion
ke wilayah tempat aplikasi disebarkan dan tempat Azure Cosmos DB direplikasi:
CosmosClient cosmosClient = new CosmosClient(
"<connection-string-from-portal>",
new CosmosClientOptions()
{
ApplicationRegion = Regions.WestUS2,
});
Secara opsional, Anda dapat menggunakan CosmosClientBuilder
dan untuk mencapai hasil yang WithApplicationRegion
sama:
CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
.WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();
Java V4 SDK
Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, panggil .multipleWriteRegionsEnabled(true)
dan .preferredRegions(preferredRegions)
di penyusun klien, di mana preferredRegions
merupakan List
wilayah data direplikasi ke dalam urutan berdasarkan preferensi - idealnya wilayah dengan jarak terpendek/latensi terbaik terlebih dahulu:
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 menggunakan Maven com.microsoft.azure::azure-cosmosdb. Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, atur policy.setUsingMultipleWriteLocations(true)
dan atur policy.setPreferredLocations
ke List
wilayah tempat data direplikasi ke dalam urutan berdasarkan preferensi - idealnya wilayah dengan jarak terpendek/latensi terbaik terlebih dahulu:
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, and TypeScript SDKs
Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, atur connectionPolicy.UseMultipleWriteLocations
ke true
. Selain itu, atur connectionPolicy.PreferredLocations
ke wilayah tempat data direplikasi ke dalam urutan berdasarkan preferensi - idealnya wilayah dengan jarak terpendek/latensi terbaik terlebih dahulu:
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
Untuk mengaktifkan penulisan multi-wilayah di aplikasi Anda, atur connection_policy.UseMultipleWriteLocations
ke true
. Selain itu, atur connection_policy.PreferredLocations
ke wilayah tempat data direplikasi ke dalam urutan berdasarkan preferensi - idealnya wilayah dengan jarak terpendek/latensi terbaik terlebih dahulu.
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)