Azure Cosmos DB .NET SDK v3 için bağlantı yapılandırmalarını ayarlama

Önemli

Bu makaledeki bilgiler yalnızca Azure Cosmos DB .NET SDK v3 içindir. Daha fazla bilgi için lütfen Azure Cosmos DB .NET SDK v3 Sürüm notları, Nuget deposu ve Azure Cosmos DB .NET SDK v3 sorun giderme kılavuzunun Azure Cosmos DB SQL SDK bağlantı modlarını görüntüleyin. Şu anda v3'ten daha eski bir sürüm kullanıyorsanız v3'e yükseltme konusunda yardım için Bkz . Azure Cosmos DB .NET SDK v3'e Geçiş kılavuzu.

Azure Cosmos DB, garantili gecikme süresi ve aktarım hızı ile sorunsuz bir şekilde ölçeklendirilen hızlı ve esnek bir dağıtılmış veritabanıdır. Azure Cosmos DB ile veritabanınızı ölçeklendirmek için büyük mimari değişiklikleri yapmanız veya karmaşık kod yazmanız gerekmez. Ölçeği artırma ve azaltma, tek bir API çağrısı veya SDK yöntem çağrısı yapmak kadar kolaydır. Ancak Azure Cosmos DB'ye ağ çağrıları aracılığıyla erişildiğinden, Azure Cosmos DB .NET SDK v3 kullanırken en yüksek performansı elde etmek için ayarlayabileceğiniz bağlantı yapılandırmaları vardır.

Bağlantı yapılandırması

Not

Azure Cosmos DB'de. NETS SDK v3, Doğrudan modu çoğu iş yüküyle veritabanı performansını geliştirmek için çoğu durumda en iyi seçenektir.

Farklı bağlantı seçenekleri hakkında daha fazla bilgi edinmek için bağlantı modları makalesine bakın.

Doğrudan bağlantı modu

.NET SDK varsayılan bağlantı modu doğrudandır. Doğrudan modda istekler TCP protokolü kullanılarak yapılır. Dahili Doğrudan modu, ağ kaynaklarını dinamik olarak yönetmek ve en iyi performansı elde etmek için özel bir mimari kullanır. Doğrudan modda kullanılan istemci tarafı mimarisi, Azure Cosmos DB çoğaltmalarına tahmin edilebilir ağ kullanımı ve çoklu erişim sağlar. Mimari hakkında daha fazla bilgi edinmek için doğrudan mod bağlantı mimarisine bakın.

içinde örneği CosmosClientOptionsoluştururken CosmosClient bağlantı modunu yapılandırabilirsiniz.

CosmosClient client = new CosmosClient(
  "<nosql-account-endpoint>",
  tokenCredential
  new CosmosClientOptions
  {
      ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
  }
);

Doğrudan bağlantı modunu özelleştirme

Doğrudan mod, CosmosClient oluşturucusna geçirilen CosmosClientOptions aracılığıyla özelleştirilebilir. Kullanıcıların, dengeleri anlama konusunda rahat hissetmedikleri ve gerekli olmadığı sürece bunları değiştirmekten kaçınmalarını öneririz.

Yapılandırma seçeneği Varsayılan Önerilir Ayrıntılar
EnableTcpConnectionEndpointRediscovery true true Bu, sunucudan kapanan bağlantıların algılanması için bayrağı temsil eder.
IdleTcpConnectionTimeout Varsayılan olarak, boştaki bağlantılar süresiz olarak açık tutulur. 20m-24h Bu, kullanılmayan bağlantıların kapatıldığı boşta kalma süresini temsil eder. Önerilen değerler 20 dakika ile 24 saat arasındadır.
MaxRequestsPerTcpConnection 30 30 Bu, tek bir TCP bağlantısı üzerinden aynı anda izin verilen istek sayısını temsil eder. Aynı anda daha fazla istek olduğunda, doğrudan/TCP istemcisi ek bağlantılar açar. Bu değeri bağlantı başına dört istekten düşük veya bağlantı başına 50-100 istekten daha yüksek ayarlamayın. Bağlantı başına yüksek düzeyde paralellik, büyük istekler veya yanıtlar içeren veya sıkı gecikme süresi gereksinimleri olan uygulamalar, bağlantı başına 8-16 istekle daha iyi performans elde edebilir.
MaxTcpConnectionsPerEndpoint 65535 65535 Bu, her Cosmos DB arka ucuna açılabilir en fazla TCP bağlantısı sayısını temsil eder. MaxRequestsPerTcpConnection ile birlikte, bu ayar aynı anda tek bir Cosmos DB arka ucuna gönderilen isteklerin sayısını sınırlar (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). Değer 16'dan büyük veya buna eşit olmalıdır.
OpenTcpConnectionTimeout 5 saniye 1 saniye Bu, bağlantı kurmaya çalışmak için izin verilen süreyi temsil eder. Süre dolduğunda, deneme iptal edilir ve bir hata döndürülür. Daha uzun zaman aşımları yeniden denemeleri ve hataları geciktirir.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Bu, aktarım yığını tarafından kullanılan istemci bağlantı noktası yeniden kullanım ilkesini temsil eder.

Ağ geçidi bağlantı modunu özelleştirme

Ağ Geçidi modu CosmosClient Oluşturucus'a geçirilen CosmosClientOptions aracılığıyla özelleştirilebilir. Kullanıcıların, dengeleri anlama konusunda rahat hissetmedikleri ve gerekli olmadığı sürece bunları değiştirmekten kaçınmalarını öneririz.

Yapılandırma seçeneği Varsayılan Önerilir Ayrıntılar
GatewayModeMaxConnectionLimit 50 50 Bu, Azure Cosmos DB hizmetinde hedef hizmet uç noktası için izin verilen en fazla eşzamanlı bağlantı sayısını temsil eder.
WebProxy null null Bu, web istekleri için kullanılan proxy bilgilerini temsil eder.

Not

Ayrıca bkz. Azure Cosmos DB NET SDK v3 için Ağ Geçidi modunu kullanırken en iyi yöntemler.

Sonraki adımlar

.NET SDK'sına yönelik performans ipuçları hakkında daha fazla bilgi edinmek için bkz . Azure Cosmos DB NET SDK v3 için performans ipuçları.

  • Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdekleri veya vCPU'ları kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
  • Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin