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. |
Catatan
Lihat juga Tips perfomance jaringan untuk mode koneksi langsung
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. |
Catatan
Lihat juga Praktik terbaik saat menggunakan mode Gateway untuk Azure Cosmos DB NET SDK v3.
Langkah berikutnya
Untuk mempelajari selengkapnya tentang tips performa untuk .NET SDK, lihat Tips performa untuk Azure Cosmos DB NET SDK v3.
- Jika Anda hanya mengetahui jumlah vCore dan server di kluster database yang ada, baca tentang memperkirakan unit permintaan menggunakan vCore atau vCPU
- Jika Anda mengetahui rasio permintaan umum untuk beban kerja database Anda saat ini, baca memperkirakan unit permintaan menggunakan perencana kapasitas Azure Cosmos DB