Поделиться через


Настройка конфигураций подключений для пакета SDK для .NET для Azure Cosmos DB версии 3

Внимание

Сведения в этой статье предназначены только для пакета SDK для .NET для Azure Cosmos DB версии 3. Дополнительные сведения см. в режимах подключения пакета SDK SQL для Azure Cosmos DB версии 3, репозитория Nuget и пакета SDK для .NET для Azure Cosmos DB версии 3. Если вы используете более раннюю версию версии 3, ознакомьтесь с руководством по переходу на пакет SDK для .NET для Azure Cosmos DB версии 3, чтобы получить справку по обновлению до версии 3 .

Azure Cosmos DB — быстрая и гибкая распределенная база данных, которая легко масштабируется с гарантированной задержкой и пропускной способностью. Для масштабирования базы данных с помощью Azure Cosmos DB не нужно вносить в архитектуру существенные изменения или писать сложный код. Для увеличения или уменьшения масштаба достаточно вызвать один метод интерфейса API или пакета SDK. Однако, так как Доступ к Azure Cosmos DB осуществляется через сетевые вызовы, существуют конфигурации подключения, которые можно настроить для достижения пиковой производительности при использовании пакета SDK для .NET для Azure Cosmos DB версии 3.

Настройка подключений

Примечание.

В Azure Cosmos DB. Пакет SDK NETS версии 3— это лучший вариант в большинстве случаев для повышения производительности базы данных с большинством рабочих нагрузок.

Дополнительные сведения о различных вариантах подключения см. в статье Режимы подключения.

Режим прямого подключения

Режим подключения пакета SDK для .NET по умолчанию является прямым. В прямом режиме запросы выполняются с помощью протокола TCP. На внутреннем уровне режим прямого подключения использует специальную архитектуру для динамического управления сетевыми ресурсами и обеспечения оптимальной производительности. Клиентская архитектура, применяемая в режиме прямого подключения, обеспечивает предсказуемое использование сети и мультиплексированный доступ к репликам Azure Cosmos DB. Дополнительные сведения об архитектуре см. в архитектуре подключения к прямому режиму.

Режим подключения настраивается при создании экземпляра CosmosClient в CosmosClientOptions.

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

Настройка режима прямого подключения

Прямой режим можно настроить с помощью cosmosClientOptions , переданного конструктору CosmosClient . Мы рекомендуем пользователям избегать изменения этих, если они не чувствуют себя комфортно в понимании компромиссов и это необходимо.

Параметр конфигурации По умолчанию. Рекомендуемая конфигурация Сведения
EnableTcp Подключение ionEndpointRediscovery true true Это флаг для включения обнаружения подключений, закрывающихся с сервера.
IdleTcp Подключение ionTimeout По умолчанию неактивные соединения остаются открытыми в течение неограниченного времени. 20 м-24h Это означает время простоя, после которого неиспользуемые подключения закрываются. Рекомендуемые значения : от 20 минут до 24 часов.
MaxRequestsPerTcp Подключение ion 30 30 Это представляет количество запросов, разрешенных одновременно по одному TCP-подключению. При одновременном выполнении дополнительных запросов прямой или TCP-клиент открывает дополнительные подключения. Не устанавливайте это значение ниже четырех запросов на подключение или более 50–100 запросов на подключение. Приложения с высокой степенью параллелизма на соединение, с большими запросами или ответами или с жесткими требованиями к задержке могут повысить производительность с 8–16 запросов на подключение.
MaxTcp Подключение ionsPerEndpoint 65535 65535 Это представляет максимальное количество TCP-подключений, которые могут быть открыты для каждой внутренней части Cosmos DB. Вместе с MaxRequestsPerTcp Подключение ion этот параметр ограничивает количество запросов, которые одновременно отправляются в одну серверную часть Cosmos DB(MaxRequestsPerTcp Подключение ion x MaxTcp Подключение ionPerEndpoint). Значение должно быть больше или равно 16.
OpenTcp Подключение ionTimeout 5 секунд 1 с Это означает время, разрешенное для установки подключения. Когда время истекает, попытка отменяется и возвращается ошибка. Длительное время ожидания задерживает повторные попытки и сбои.
PortReuseMode PortReuseMode.ReuseUnicastPort PortReuseMode.ReuseUnicastPort Это представляет политику повторного использования клиентского порта, используемую стеком транспорта.

Настройка режима подключения шлюза

Режим шлюза можно настроить с помощью cosmosClientOptions , переданного конструктору CosmosClient . Мы рекомендуем пользователям избегать изменения этих, если они не чувствуют себя комфортно в понимании компромиссов и это необходимо.

Параметр конфигурации По умолчанию. Рекомендуемая конфигурация Сведения
GatewayModeMax Подключение ionLimit 50 50 Это представляет максимальное количество одновременных подключений, разрешенных для конечной точки целевой службы в службе Azure Cosmos DB.
Webproxy null null Это представляет сведения о прокси-сервере, используемые для веб-запросов.

Следующие шаги

Дополнительные сведения о советах по повышению производительности пакета SDK для .NET см. в советах по повышению производительности пакета SDK для Azure Cosmos DB версии 3.