Dela via


Justera anslutningskonfigurationer för Azure Cosmos DB .NET SDK v3

Viktigt!

Informationen i den här artikeln gäller endast för Azure Cosmos DB .NET SDK v3. Mer information finns i azure Cosmos DB SQL SDK-anslutningslägen i felsökningsguiden för Azure Cosmos DB .NET SDK v3, Nuget-lagringsplatsen och Azure Cosmos DB .NET SDK v3. Om du använder en äldre version än v3 kan du läsa guiden Migrera till Azure Cosmos DB .NET SDK v3 för hjälp med att uppgradera till v3.

Azure Cosmos DB är en snabb och flexibel distribuerad databas som skalas sömlöst med garanterad svarstid och dataflöde. Du behöver inte göra större arkitekturändringar eller skriva komplex kod för att skala databasen med Azure Cosmos DB. Det är lika enkelt att skala upp och ned som att göra ett enda API-anrop eller ett SDK-metodanrop. Men eftersom Azure Cosmos DB nås via nätverksanrop finns det anslutningskonfigurationer som du kan justera för att uppnå högsta prestanda när du använder Azure Cosmos DB .NET SDK v3.

Anslutningskonfiguration

Kommentar

I Azure Cosmos DB . NETS SDK v3, Direktläge är det bästa valet i de flesta fall för att förbättra databasprestanda med de flesta arbetsbelastningar.

Mer information om olika anslutningsalternativ finns i artikeln om anslutningslägen .

Direktanslutningsläge

Standardanslutningsläget för .NET SDK är direkt. I direktläge görs begäranden med hjälp av TCP-protokollet. Internt direktläge använder en särskild arkitektur för att dynamiskt hantera nätverksresurser och få bästa möjliga prestanda. Arkitekturen på klientsidan som används i direktläge möjliggör förutsägbar nätverksanvändning och multiplexerad åtkomst till Azure Cosmos DB-repliker. Mer information om arkitektur finns i anslutningsarkitekturen för direktläge.

Du konfigurerar anslutningsläget när du skapar instansen CosmosClient i CosmosClientOptions.

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

Anpassa direktanslutningsläge

Direktläge kan anpassas via CosmosClientOptions som skickas till CosmosClient-konstruktorn . Vi rekommenderar att användarna undviker att ändra dessa om de inte känner sig bekväma med att förstå kompromisserna och det är nödvändigt.

Konfigurationsalternativ Standardvärde Rekommenderat Details
EnableTcpConnectionEndpointRediscovery true true Detta representerar flaggan för att aktivera identifiering av anslutningar som stängs från servern.
IdleTcpConnectionTimeout Som standard hålls inaktiva anslutningar öppna på obestämd tid. 20m-24h Detta representerar hur lång inaktivitetstid som oanvända anslutningar stängs efter. Rekommenderade värden är mellan 20 minuter och 24 timmar.
MaxRequestsPerTcpConnection 30 30 Detta representerar antalet begäranden som tillåts samtidigt över en enda TCP-anslutning. När fler begäranden körs samtidigt öppnar direct/TCP-klienten extra anslutningar. Ange inte det här värdet som är lägre än fyra begäranden per anslutning eller högre än 50–100 begäranden per anslutning. Program med hög grad av parallellitet per anslutning, med stora begäranden eller svar, eller med snäva svarstider, kan få bättre prestanda med 8–16 begäranden per anslutning.
MaxTcpConnectionsPerEndpoint 65535 65535 Detta representerar det maximala antalet TCP-anslutningar som kan öppnas för varje Cosmos DB-serverdel. Tillsammans med MaxRequestsPerTcpConnection begränsar den här inställningen antalet begäranden som skickas samtidigt till en enda Cosmos DB-serverdel (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). Värdet måste vara större än eller lika med 16.
OpenTcpConnectionTimeout 5 sekunder 1 sekund Detta representerar den tid som tillåts för att försöka upprätta en anslutning. När tiden går avbryts försöket och ett fel returneras. Längre tidsgränser fördröjer återförsök och fel.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Detta representerar den princip för återanvändning av klientport som används av transportstacken.

Anpassa gatewayanslutningsläge

Gateway-läget kan anpassas via CosmosClientOptions som skickas till CosmosClient-konstruktorn . Vi rekommenderar att användarna undviker att ändra dessa om de inte känner sig bekväma med att förstå kompromisserna och det är nödvändigt.

Konfigurationsalternativ Standardvärde Rekommenderat Details
GatewayModeMaxConnectionLimit 50 50 Detta representerar det maximala antalet samtidiga anslutningar som tillåts för måltjänstslutpunkten i Azure Cosmos DB-tjänsten.
WebProxy null null Detta representerar den proxyinformation som används för webbbegäranden.

Nästa steg

Mer information om prestandatips för .NET SDK finns i Prestandatips för Azure Cosmos DB NET SDK v3.