Freigeben über


Optimieren von Verbindungskonfigurationen für Azure Cosmos DB .NET SDK v3

Wichtig

Die Informationen in diesem Artikel gelten nur für Azure Cosmos DB .NET SDK v3. Weitere Informationen finden Sie in den Azure Cosmos DB SQL SDK-Konnektivitätsmodi, den Azure Cosmos DB .NET SDK v3-Versionshinweisen, dem Nuget-Repository und dem Leitfaden zur Problembehandlung für Azure Cosmos DB .NET SDK v3. Wenn Sie aktuell eine ältere Version als v3 verwenden, lesen Sie den Leitfaden Migrieren zu Azure Cosmos DB .NET SDK v3, um das Upgrade auf v3 vorzunehmen.

Azure Cosmos DB ist eine schnelle und flexible verteilte Datenbank mit nahtloser Skalierung, garantierter Latenz und garantiertem Durchsatz. Die Skalierung Ihrer Datenbank mit Azure Cosmos DB erfordert weder aufwendige Änderungen an der Architektur noch das Schreiben von komplexem Code. Zentrales Hoch- und Herunterskalieren ist ebenso problemlos möglich wie das Aufrufen einer einzelnen API oder SDK-Methode. Da der Zugriff auf Azure Cosmos DB jedoch über Netzwerkaufrufe erfolgt, können Sie bei der Verwendung von Azure Cosmos DB .NET SDK v3 Verbindungskonfigurationen optimieren, um die bestmögliche Leistung zu erzielen.

Verbindungskonfiguration

Hinweis

In Azure Cosmos DB .NETS SDK v3 ist der direkte Modus in den meisten Fällen die beste Wahl, um die Datenbankleistung bei den meisten Workloads zu verbessern.

Weitere Informationen zu verschiedenen Konnektivitätsoptionen finden Sie im Artikel zu den Konnektivitätsmodi.

Direkter Verbindungsmodus

Als Standardverbindungsmodus von .NET SDK wird der direkte Modus verwendet. Im direkten Modus erfolgen Anforderungen mithilfe des TCP-Protokolls. Intern verwendet der direkte Modus eine spezielle Architektur, um Netzwerkressourcen dynamisch zu verwalten und die beste Leistung zu erzielen. Die clientseitige Architektur, die im direkten Modus eingesetzt wird, ermöglicht vorhersagbare Netzwerkauslastungen und Multiplexzugriff auf Azure Cosmos DB-Replikate. Weitere Informationen zur Architektur finden Sie unter Verbindungsarchitektur im direkten Modus.

Sie konfigurieren den Verbindungsmodus beim Erstellen der CosmosClient-Instanz in CosmosClientOptions.

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

Anpassen des direkten Verbindungsmodus

Der direkte Modus kann über die CosmosClientOptions, die an den CosmosClient-Konstruktor übergeben werden, angepasst werden. Wir empfehlen den Benutzern, diese nicht zu ändern, es sei denn, sie können die Kompromisse nachvollziehen und es ist erforderlich.

Konfigurationsoption Standard Empfohlen Details
EnableTcpConnectionEndpointRediscovery true true Flag, das die Erkennung von Schließen von Verbindungen durch den Server ermöglicht.
IdleTcpConnectionTimeout Standardmäßig werden Verbindungen im Leerlauf unbegrenzt geöffnet gehalten. 20m-24h Leerlaufzeitspanne, nach der nicht verwendete Verbindungen geschlossen werden. Empfohlen werden Werte zwischen 20 Minuten und 24 Stunden.
MaxRequestsPerTcpConnection 30 30 Anzahl von Anforderungen, die gleichzeitig über eine einzelne TCP-Verbindung zulässig sind. Wenn mehrere Anforderungen gleichzeitig im Flight ausgeführt werden, öffnet der Direct/TCP-Client zusätzliche Verbindungen. Legen Sie diesen Wert mit nicht weniger als 4 Anforderungen pro Verbindung oder mehr als 50–100 Anforderungen pro Verbindung fest. Anwendungen mit einem hohen Grad an Parallelität pro Verbindung, mit umfassenden Anforderungen oder Antworten oder mit engen Latenzanforderungen können mit 8–16 Anforderungen pro Verbindung eine bessere Leistung erzielen.
MaxTcpConnectionsPerEndpoint 65.535 65.535 Maximale Anzahl von TCP-Verbindungen, die für jedes Cosmos DB Back-End geöffnet werden können. Zusammen mit MaxRequestsPerTcpConnection begrenzt diese Einstellung die Anzahl der Anforderungen, die gleichzeitig an ein einzelnes Cosmos DB Back-End gesendet werden (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). Der Wert muss größer als oder gleich 16 sein.
OpenTcpConnectionTimeout 5 Sekunden 1 Sekunde Zeitspanne, die für den Versuch, eine Verbindung herzustellen, zulässig ist. Wenn die Zeitspanne abgelaufen ist, wird der Versuch abgebrochen und ein Fehler zurückgegeben. Längere Timeouts verzögern Wiederholungsversuche und Fehler.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Richtlinie für die Wiederverwendung von Client-Ports, die vom Transportstapel verwendet wird.

Anpassen des Gatewayverbindungsmodus

Der Gateway-Modus kann über die CosmosClientOptions, die an den CosmosClient-Konstruktor übergeben werden, angepasst werden. Wir empfehlen den Benutzern, diese nicht zu ändern, es sei denn, sie können die Kompromisse nachvollziehen und es ist erforderlich.

Konfigurationsoption Standard Empfohlen Details
GatewayModeMaxConnectionLimit 50 50 Maximale Anzahl gleichzeitiger Verbindungen, die für den Zieldienstendpunkt im Azure Cosmos DB-Dienst zulässig sind.
WebProxy NULL NULL Proxy-Informationen, die für Webanforderungen verwendet werden.

Nächste Schritte

Weitere Informationen zu Leistungstipps für .NET SDK finden Sie unter Leistungstipps für Azure Cosmos DB NET SDK v3.