Verbindingsconfiguraties afstemmen voor Azure Cosmos DB .NET SDK v3
Belangrijk
De informatie in dit artikel is alleen bedoeld voor Azure Cosmos DB .NET SDK v3. Bekijk de azure Cosmos DB SQL SDK-connectiviteitsmodi in de releaseopmerkingen voor Azure Cosmos DB .NET SDK v3, Nuget-opslagplaats en Azure Cosmos DB .NET SDK v3 voor meer informatie. Als u momenteel een oudere versie dan v3 gebruikt, raadpleegt u de handleiding Migreren naar Azure Cosmos DB .NET SDK v3 voor hulp bij het upgraden naar v3.
Azure Cosmos DB is een snelle en flexibele gedistribueerde database die naadloos wordt geschaald met gegarandeerde latentie en doorvoer. U hoeft geen belangrijke architectuurwijzigingen aan te brengen of complexe code te schrijven om uw database te schalen met Azure Cosmos DB. Omhoog en omlaag schalen is net zo eenvoudig als het maken van één API-aanroep of SDK-methode-aanroep. Omdat Azure Cosmos DB echter toegankelijk is via netwerkaanroepen, zijn er verbindingsconfiguraties die u kunt afstemmen om piekprestaties te bereiken wanneer u Azure Cosmos DB .NET SDK v3 gebruikt.
Verbindingsconfiguratie
Notitie
In Azure Cosmos DB. NETS SDK v3, directe modus is de beste keuze in de meeste gevallen om de databaseprestaties met de meeste workloads te verbeteren.
Zie het artikel over connectiviteitsmodi voor meer informatie over verschillende connectiviteitsopties .
Directe verbindingsmodus
De standaardverbindingsmodus van .NET SDK is direct. In de directe modus worden aanvragen gedaan met behulp van het TCP-protocol. Intern de directe modus maakt gebruik van een speciale architectuur om netwerkbronnen dynamisch te beheren en de beste prestaties te krijgen. De architectuur aan de clientzijde die in de directe modus wordt gebruikt, maakt voorspelbaar netwerkgebruik en multiplexed toegang tot Azure Cosmos DB-replica's mogelijk. Zie de verbindingsarchitectuur voor de directe modus voor meer informatie over architectuur.
U configureert de verbindingsmodus wanneer u het CosmosClient
exemplaar maakt in CosmosClientOptions
.
CosmosClient client = new CosmosClient(
"<nosql-account-endpoint>",
tokenCredential
new CosmosClientOptions
{
ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
}
);
Directe verbindingsmodus aanpassen
De directe modus kan worden aangepast via de CosmosClientOptions die wordt doorgegeven aan de CosmosClient-constructor . We raden gebruikers aan deze te vermijden, tenzij ze zich vertrouwd voelen bij het begrijpen van de compromissen en het is nodig.
Configuratieoptie | Standaardinstelling | Aanbevolen | DETAILS |
---|---|---|---|
EnableTcpConnectionEndpointRediscovery | true | true | Dit vertegenwoordigt de vlag voor het inschakelen van detectie van verbindingen die van de server worden gesloten. |
IdleTcpConnectionTimeout | Standaard worden niet-actieve verbindingen voor onbepaalde tijd geopend. | 20m-24u | Dit geeft de hoeveelheid niet-actieve tijd aan waarna ongebruikte verbindingen worden gesloten. Aanbevolen waarden liggen tussen 20 minuten en 24 uur. |
MaxRequestsPerTcpConnection | 30 | 30 | Dit vertegenwoordigt het aantal aanvragen dat tegelijkertijd is toegestaan via één TCP-verbinding. Wanneer er tegelijkertijd meer aanvragen worden verzonden, opent de directe/TCP-client extra verbindingen. Stel deze waarde niet lager in dan vier aanvragen per verbinding of hoger dan 50-100 aanvragen per verbinding. Toepassingen met een hoge mate van parallelle uitvoering per verbinding, met grote aanvragen of antwoorden, of met strikte latentievereisten kunnen betere prestaties krijgen met 8-16 aanvragen per verbinding. |
MaxTcpConnectionsPerEndpoint | 65535 | 65535 | Dit vertegenwoordigt het maximum aantal TCP-verbindingen dat kan worden geopend voor elke Cosmos DB-back-end. Samen met MaxRequestsPerTcpConnection beperkt deze instelling het aantal aanvragen dat tegelijkertijd wordt verzonden naar één Cosmos DB-back-end (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). De waarde moet groter dan of gelijk zijn aan 16. |
OpenTcpConnectionTimeout | 5 seconden | 1 seconde | Dit geeft de hoeveelheid tijd aan die is toegestaan voor het tot stand brengen van een verbinding. Wanneer de tijd is verstreken, wordt de poging geannuleerd en wordt er een fout geretourneerd. Langere time-outs vertragen nieuwe pogingen en fouten. |
PortReuseMode | PortReuseMode.ReuseUnicastPort | PortReuseMode.ReuseUnicastPort | Dit vertegenwoordigt het beleid voor hergebruik van clientpoorten dat wordt gebruikt door de transportstack. |
Notitie
Zie ook tips voor netwerkpersomance voor de modus directe verbinding
Gatewayverbindingsmodus aanpassen
De gatewaymodus kan worden aangepast via de CosmosClientOptions die wordt doorgegeven aan de CosmosClient-constructor . We raden gebruikers aan deze te vermijden, tenzij ze zich vertrouwd voelen bij het begrijpen van de compromissen en het is nodig.
Configuratieoptie | Standaardinstelling | Aanbevolen | DETAILS |
---|---|---|---|
GatewayModeMaxConnectionLimit | 50 | 50 | Dit vertegenwoordigt het maximum aantal gelijktijdige verbindingen dat is toegestaan voor het doelservice-eindpunt in de Azure Cosmos DB-service. |
WebProxy | Nul | Nul | Dit vertegenwoordigt de proxygegevens die worden gebruikt voor webaanvragen. |
Notitie
Zie ook Aanbevolen procedures voor het gebruik van de gatewaymodus voor Azure Cosmos DB NET SDK v3.
Volgende stappen
Zie Prestatietips voor Azure Cosmos DB NET SDK v3 voor meer informatie over prestatietips voor .NET SDK.
- Als alles wat u weet het aantal vCores en servers in uw bestaande databasecluster is, leest u meer over het schatten van aanvraageenheden met behulp van vCores of vCPU's
- Als u typische aanvraagtarieven voor uw huidige databaseworkload kent, leest u meer over het schatten van aanvraageenheden met behulp van azure Cosmos DB-capaciteitsplanner