Udostępnij za pośrednictwem


Dostrajanie konfiguracji połączeń dla zestawu .NET SDK platformy .NET usługi Azure Cosmos DB w wersji 3

Ważne

Informacje przedstawione w tym artykule dotyczą tylko zestawu .NET SDK platformy .NET usługi Azure Cosmos DB w wersji 3. Aby uzyskać więcej informacji, zobacz tryby łączności zestawu SQL SDK SQL usługi Azure Cosmos DB z zestawem .NET SDK w wersji 3, repozytorium Nuget i przewodnik rozwiązywania problemów z zestawem .NET SDK usługi Azure Cosmos DB w wersji 3. Jeśli obecnie używasz starszej wersji niż 3, zobacz przewodnik Migrowanie do zestawu .NET SDK platformy .NET usługi Azure Cosmos DB w wersji 3 , aby uzyskać pomoc dotyczącą uaktualniania do wersji 3.

Azure Cosmos DB to szybka i elastyczna rozproszona baza danych, która bezproblemowo skaluje się z gwarantowanym opóźnieniem i przepływnością. Nie musisz wprowadzać istotnych zmian architektury ani pisać złożonego kodu w celu skalowania bazy danych za pomocą usługi Azure Cosmos DB. Skalowanie w górę i w dół jest tak proste, jak tworzenie pojedynczego wywołania interfejsu API lub wywołania metody zestawu SDK. Jednak ponieważ usługa Azure Cosmos DB jest dostępna za pośrednictwem wywołań sieciowych, istnieją konfiguracje połączeń, które można dostosować, aby osiągnąć szczytową wydajność podczas korzystania z zestawu .NET SDK platformy .NET usługi Azure Cosmos DB w wersji 3.

Konfiguracja Połączenie ion

Uwaga

W usłudze Azure Cosmos DB . Zestaw NETS SDK w wersji 3, tryb bezpośredni jest najlepszym wyborem w większości przypadków, aby zwiększyć wydajność bazy danych przy użyciu większości obciążeń.

Aby dowiedzieć się więcej o różnych opcjach łączności, zobacz artykuł Tryby łączności.

Tryb połączenia bezpośredniego

Domyślny tryb połączenia zestawu .NET SDK jest bezpośredni. W trybie bezpośrednim żądania są wykonywane przy użyciu protokołu TCP. Tryb wewnętrznie bezpośredni używa specjalnej architektury do dynamicznego zarządzania zasobami sieciowymi i uzyskania najlepszej wydajności. Architektura po stronie klienta zastosowana w trybie bezpośrednim umożliwia przewidywalne wykorzystanie sieci i multipleksowany dostęp do replik usługi Azure Cosmos DB. Aby dowiedzieć się więcej na temat architektury, zobacz architektura połączenia w trybie bezpośrednim.

Tryb połączenia można skonfigurować podczas tworzenia CosmosClient wystąpienia w programie CosmosClientOptions.

string connectionString = "<your-account-connection-string>";
CosmosClient client = new CosmosClient(connectionString,
new CosmosClientOptions
{
    ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
});

Dostosowywanie trybu bezpośredniego połączenia

Tryb bezpośredni można dostosować za pomocą elementu CosmosClientOptions przekazanego do konstruktora CosmosClient . Zalecamy użytkownikom unikanie modyfikowania tych danych, chyba że czują się komfortowo w zrozumieniu kompromisów i jest to konieczne.

Opcja konfiguracji Wartość domyślna Zalecane Szczegóły
EnableTcp Połączenie ionEndpointRediscovery prawda prawda Reprezentuje to flagę umożliwiającą wykrywanie połączeń zamykających się z serwera.
IdleTcp Połączenie ionTimeout Domyślnie bezczynne połączenia są przechowywane przez czas nieokreślony. 20m-24h Reprezentuje to czas bezczynności, po którym nieużywane połączenia są zamykane. Zalecane wartości to od 20 minut do 24 godzin.
MaxRequestsPerTcp Połączenie ion 30 30 Reprezentuje to liczbę żądań dozwolonych jednocześnie za pośrednictwem pojedynczego połączenia TCP. Gdy więcej żądań jest w locie jednocześnie, klient direct/TCP otwiera dodatkowe połączenia. Nie ustawiaj tej wartości poniżej czterech żądań na połączenie lub więcej niż 50–100 żądań na połączenie. Aplikacje o wysokim stopniu równoległości na połączenie, z dużymi żądaniami lub odpowiedziami lub z dużymi wymaganiami dotyczącymi opóźnień mogą uzyskać lepszą wydajność z 8–16 żądań na połączenie.
MaxTcp Połączenie ionsPerEndpoint 65535 65535 Reprezentuje to maksymalną liczbę połączeń TCP, które mogą być otwarte dla każdego zaplecza usługi Cosmos DB. Razem z maxRequestsPerTcp Połączenie ion to ustawienie ogranicza liczbę żądań wysyłanych jednocześnie do jednego zaplecza usługi Cosmos DB (MaxRequestsPerTcp Połączenie ion x MaxTcp Połączenie ionPerEndpoint). Wartość musi być większa lub równa 16.
OpenTcp Połączenie ionTimeout 5 s 1 sekunda Reprezentuje to ilość czasu dozwolonego na próbę nawiązania połączenia. Gdy upłynie czas, próba zostanie anulowana i zostanie zwrócony błąd. Dłuższe przekroczenia limitu czasu opóźniają ponawianie prób i awarie.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Reprezentuje to zasady ponownego użycia portu klienta używane przez stos transportu.

Dostosowywanie trybu połączenia bramy

Tryb bramy można dostosować za pomocą elementu CosmosClientOptions przekazanego do konstruktora CosmosClient . Zalecamy użytkownikom unikanie modyfikowania tych danych, chyba że czują się komfortowo w zrozumieniu kompromisów i jest to konieczne.

Opcja konfiguracji Wartość domyślna Zalecane Szczegóły
GatewayModeMax Połączenie ionLimit 50 50 Reprezentuje to maksymalną liczbę współbieżnych połączeń dozwolonych dla docelowego punktu końcowego usługi w usłudze Azure Cosmos DB.
Webproxy null null Reprezentuje to informacje o serwerze proxy używane dla żądań internetowych.

Następne kroki

Aby dowiedzieć się więcej na temat wskazówek dotyczących wydajności dla zestawu .NET SDK, zobacz Porady dotyczące wydajności dla zestawu SDK platformy Azure Cosmos DB w wersji 3.