Настройка конфигураций подключений для пакета 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
.
CosmosClient client = new CosmosClient(
"<nosql-account-endpoint>",
tokenCredential
new CosmosClientOptions
{
ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
}
);
Настройка режима прямого подключения
Прямой режим можно настроить с помощью cosmosClientOptions , переданного конструктору CosmosClient . Мы рекомендуем пользователям избегать изменения этих, если они не чувствуют себя комфортно в понимании компромиссов и это необходимо.
Параметр конфигурации | По умолчанию. | Рекомендуемая конфигурация | Сведения |
---|---|---|---|
EnableTcpConnectionEndpointRediscovery | true | true | Это флаг для включения обнаружения подключений, закрывающихся с сервера. |
IdleTcpConnectionTimeout | По умолчанию неактивные соединения остаются открытыми в течение неограниченного времени. | 20 м-24h | Это означает время простоя, после которого неиспользуемые подключения закрываются. Рекомендуемые значения : от 20 минут до 24 часов. |
MaxRequestsPerTcpConnection | 30 | 30 | Это представляет количество запросов, разрешенных одновременно по одному TCP-подключению. При одновременном выполнении дополнительных запросов прямой или TCP-клиент открывает дополнительные подключения. Не устанавливайте это значение ниже четырех запросов на подключение или более 50–100 запросов на подключение. Приложения с высокой степенью параллелизма на соединение, с большими запросами или ответами или с жесткими требованиями к задержке могут повысить производительность с 8–16 запросов на подключение. |
MaxTcpConnectionsPerEndpoint | 65535 | 65535 | Это представляет максимальное количество TCP-подключений, которые могут быть открыты для каждой внутренней части Cosmos DB. Вместе с MaxRequestsPerTcpConnection этот параметр ограничивает количество запросов, которые одновременно отправляются в одну серверную часть Cosmos DB(MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). Значение должно быть больше или равно 16. |
OpenTcpConnectionTimeout | 5 секунд | 1 с | Это означает время, разрешенное для установки подключения. Когда время истекает, попытка отменяется и возвращается ошибка. Длительное время ожидания задерживает повторные попытки и сбои. |
PortReuseMode | PortReuseMode.ReuseUnicastPort | PortReuseMode.ReuseUnicastPort | Это представляет политику повторного использования клиентского порта, используемую стеком транспорта. |
Примечание.
См. также советы по работе с сетями для режима прямого подключения
Настройка режима подключения шлюза
Режим шлюза можно настроить с помощью cosmosClientOptions , переданного конструктору CosmosClient . Мы рекомендуем пользователям избегать изменения этих, если они не чувствуют себя комфортно в понимании компромиссов и это необходимо.
Параметр конфигурации | По умолчанию. | Рекомендуемая конфигурация | Сведения |
---|---|---|---|
GatewayModeMaxConnectionLimit | 50 | 50 | Это представляет максимальное количество одновременных подключений, разрешенных для конечной точки целевой службы в службе Azure Cosmos DB. |
WebProxy | null | null | Это представляет сведения о прокси-сервере, используемые для веб-запросов. |
Примечание.
См. также рекомендации по использованию режима шлюза для пакета SDK NET для Azure Cosmos DB версии 3.
Следующие шаги
Дополнительные сведения о советах по повышению производительности пакета SDK для .NET см. в советах по повышению производительности пакета SDK для Azure Cosmos DB версии 3.
- Если вам известно только количество виртуальных ядер и серверов в существующем кластере баз данных, см. сведения об оценке единиц запросов на основе виртуальных ядер и серверов.
- Если вам известна стандартная частота запросов для текущей рабочей нагрузки базы данных, ознакомьтесь со статьей о расчете единиц запросов с помощью планировщика ресурсов Azure Cosmos DB