Bagikan melalui


Menyetel konfigurasi koneksi untuk Azure Cosmos DB .NET SDK v3

Penting

Informasi dalam artikel ini hanya untuk Azure Cosmos DB .NET SDK v3. Silakan lihat mode konektivitas Azure Cosmos DB SQL SDK, catatan Rilis Azure Cosmos DB .NET SDK v3, repositori Nuget, dan panduan pemecahan masalah Azure Cosmos DB .NET SDK v3 untuk informasi selengkapnya. Jika saat ini Anda menggunakan versi yang lebih lama dari v3, lihat panduan Migrasi ke Azure Cosmos DB .NET SDK v3 untuk membantu meningkatkan ke v3.

Azure Cosmos DB merupakan database terdistribusi yang cepat dan fleksibel yang menskalakan secara lancar dengan tingkat latensi dan throughput terjamin. Anda tidak perlu membuat perubahan arsitektur besar atau menulis kode kompleks untuk menskalakan database dengan Azure Cosmos DB. Meningkatkan dan menurunkan skala semudah membuat satu panggilan API atau panggilan metode SDK. Namun, karena Azure Cosmos DB diakses melalui panggilan jaringan, ada konfigurasi koneksi yang dapat Anda sesuaikan untuk mencapai performa puncak saat menggunakan Azure Cosmos DB .NET SDK v3.

Konfigurasi koneksi

Catatan

Di Azure Cosmos DB . NETS SDK v3, Mode langsung adalah pilihan terbaik dalam kebanyakan kasus untuk meningkatkan performa database dengan sebagian besar beban kerja.

Untuk mempelajari selengkapnya tentang berbagai opsi konektivitas, lihat artikel mode konektivitas.

Mode koneksi langsung

Mode koneksi default .NET SDK langsung. Dalam mode langsung, permintaan dibuat menggunakan protokol TCP. Mode Langsung internal menggunakan arsitektur khusus untuk mengelola sumber daya jaringan secara dinamis dan mendapatkan performa terbaik. Arsitektur sisi klien yang digunakan dalam mode Langsung memungkinkan pemanfaatan jaringan yang dapat diprediksi dan akses multipleks ke replika Azure Cosmos DB. Untuk mempelajari selengkapnya tentang arsitektur, lihat arsitektur koneksi mode langsung.

Konfigurasikan mode koneksi saat Anda membuat instans CosmosClient di CosmosClientOptions.

string connectionString = "<your-account-connection-string>";
CosmosClient client = new CosmosClient(connectionString,
new CosmosClientOptions
{
    ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
});

Menyesuaikan mode koneksi langsung

Mode langsung dapat disesuaikan melalui CosmosClientOptions yang diteruskan ke konstruktor CosmosClient . Sebaiknya pengguna menghindari modifikasi ini kecuali mereka merasa nyaman dalam memahami tradeoff dan itu diperlukan.

Opsi konfigurasi Default Disarankan Detail
EnableTcp Koneksi ionEndpointRediscovery benar benar Ini mewakili bendera untuk mengaktifkan deteksi koneksi yang ditutup dari server.
IdleTcp Koneksi ionTimeout Secara default, koneksi idle tetap terbuka tanpa batas waktu. 20m-24h Ini menunjukkan jumlah waktu diam setelah koneksi yang tidak digunakan ditutup. Nilai yang disarankan adalah antara 20 menit dan 24 jam.
MaxRequestsPerTcp Koneksi ion 30 30 Ini menunjukkan jumlah permintaan yang diizinkan secara bersamaan melalui satu koneksi TCP. Ketika lebih banyak permintaan dalam penerbangan secara bersamaan, klien langsung/TCP membuka koneksi tambahan. Jangan atur nilai ini lebih rendah dari empat permintaan per koneksi atau lebih tinggi dari 50-100 permintaan per koneksi. Aplikasi dengan tingkat paralelisme yang tinggi per koneksi, dengan permintaan atau respons besar, atau dengan persyaratan latensi yang ketat mungkin mendapatkan performa yang lebih baik dengan 8-16 permintaan per koneksi.
MaxTcp Koneksi ionsPerEndpoint 65535 65535 Ini menunjukkan jumlah maksimum koneksi TCP yang dapat dibuka untuk setiap back-end Cosmos DB. Bersama dengan MaxRequestsPerTcp Koneksi ion, pengaturan ini membatasi jumlah permintaan yang secara bersamaan dikirim ke back-end Cosmos DB tunggal (MaxRequestsPerTcp Koneksi ion x MaxTcp Koneksi ionPerEndpoint). Nilai harus lebih besar dari atau sama dengan 16.
OpenTcp Koneksi ionTimeout 5 detik 1 detik Ini menunjukkan jumlah waktu yang diizinkan untuk mencoba membuat koneksi. Ketika waktu berlalu, upaya dibatalkan dan kesalahan dikembalikan. Waktu habis yang lebih lama menunda percobaan dan kegagalan.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Ini mewakili kebijakan penggunaan kembali port klien yang digunakan oleh tumpukan transportasi.

Mengkustomisasi mode koneksi gateway

Mode Gateway dapat disesuaikan melalui CosmosClientOptions yang diteruskan ke konstruktor CosmosClient . Sebaiknya pengguna menghindari modifikasi ini kecuali mereka merasa nyaman dalam memahami tradeoff dan itu diperlukan.

Opsi konfigurasi Default Disarankan Detail
GatewayModeMax Koneksi ionLimit 50 50 Ini menunjukkan jumlah maksimum koneksi bersamaan yang diizinkan untuk titik akhir layanan target di layanan Azure Cosmos DB.
WebProxy null null Ini mewakili informasi proksi yang digunakan untuk permintaan web.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang tips performa untuk .NET SDK, lihat Tips performa untuk Azure Cosmos DB NET SDK v3.