Ajuste de las configuraciones de conexión para SDK v3 para .NET de Azure Cosmos DB
Importante
La información de este artículo es solo para SDK v3 para .NET de Azure Cosmos DB. Para obtener más información, consulte los modos de conectividad del SDK del SQL de Azure Cosmos DB, las notas de SDK v3 para .NET de Azure Cosmos DB, el repositorio nuget y la guía de solución de problemas de SDK v3 para .NET de Azure Cosmos DB. Si en la actualidad usa una versión anterior a la v3, consulte la guía Migración a SDK v3 para .NET de Azure Cosmos DB a fin de obtener ayuda para actualizar a v3.
Azure Cosmos DB es una base de datos distribuida rápida y flexible que se escala sin problemas con una latencia y un rendimiento garantizados. No es necesario realizar cambios de arquitectura importantes ni escribir el código complejo para escalar la base de datos con Azure Cosmos DB. Escalar y reducir verticalmente es tan sencillo como realizar una única llamada API o una llamada al método SDK. Sin embargo, debido a que el acceso a Azure Cosmos DB se realiza través de llamadas de red, existen configuraciones de conexión que puede ajustar para conseguir el máximo rendimiento cuando usa SDK v3 para .NET de Azure Cosmos DB.
Configuración de la conexión
Nota
En SDK v3 para .NET de Azure Cosmos DB, el modo directo es la mejor opción en la mayoría de los casos para mejorar el rendimiento de la base de datos con la mayoría de las cargas de trabajo.
Para obtener más información sobre las distintas opciones de conectividad, vea el artículo Modos de conectividad.
Modo de conexión directa
El modo de conexión predeterminado del SDK de .NET es directo. En modo directo, las solicitudes se realizan mediante el protocolo TCP. Internamente, el modo directo usa una arquitectura especial para administrar dinámicamente los recursos de red y obtener el mejor rendimiento. La arquitectura del lado cliente empleada en el modo directo permite un uso predecible de la red y el acceso multiplexado a las réplicas de Azure Cosmos DB. Para obtener más información sobre la arquitectura, consulte la arquitectura de conexión en modo directo.
El modo de conexión se configura cuando se crea la instancia de CosmosClient
en CosmosClientOptions
.
CosmosClient client = new CosmosClient(
"<nosql-account-endpoint>",
tokenCredential
new CosmosClientOptions
{
ConnectionMode = ConnectionMode.Gateway // ConnectionMode.Direct is the default
}
);
Personalización del modo de conexión directa
El modo directo se puede personalizar mediante CosmosClientOptions pasado al constructor CosmosClient . Se recomienda que los usuarios eviten modificarlos, a menos que se sientan cómodos en el reconocimiento de los inconvenientes y sea necesario.
Opción de configuración | Valor predeterminado | Recomendado | Detalles |
---|---|---|---|
EnableTcpConnectionEndpointRediscovery | true | true | Representa la marca para habilitar la detección de conexiones que se cierran desde el servidor. |
IdleTcpConnectionTimeout | De forma predeterminada, las conexiones inactivas se mantienen abiertas indefinidamente. | 20 m-24 h | Esto representa la cantidad de tiempo de inactividad después de la cual se cierran las conexiones sin usar. Los valores recomendados están comprendidos entre 20 minutos y 24 horas. |
MaxRequestsPerTcpConnection | 30 | 30 | Representa el número de solicitudes permitidas simultáneamente a través de una única conexión TCP. Cuando hay más solicitudes en curso simultáneamente, el cliente direct/TCP abre conexiones adicionales. No defina este valor con menos de cuatro solicitudes por conexión ni con más de 50-100 solicitudes por conexión. Las aplicaciones con un alto grado de paralelismo por conexión, con grandes solicitudes o respuestas, o con requisitos de latencia ajustados pueden obtener un mejor rendimiento con 8-16 solicitudes por conexión. |
MaxTcpConnectionsPerEndpoint | 65535 | 65535 | Esto representa el número máximo de conexiones TCP que se pueden abrir en cada back-end de Cosmos DB. Junto con MaxRequestsPerTcpConnection, esta configuración limita el número de solicitudes que se envían simultáneamente a un único back-end de Cosmos DB (MaxRequestsPerTcpConnection x MaxTcpConnectionPerEndpoint). El valor debe ser superior o igual a 16. |
OpenTcpConnectionTimeout | 5 segundos | 1 segundo | Esto representa la cantidad de tiempo permitido para intentar establecer una conexión. Cuando transcurre el tiempo, se cancela el intento y se devuelve un error. Los tiempos de espera más largos retrasan los reintentos y los errores. |
PortReuseMode | PortReuseMode.ReuseUnicastPort | PortReuseMode.ReuseUnicastPort | Esto representa la directiva de reutilización del puerto de cliente utilizada por la pila de transporte. |
Nota
Consulte también Sugerencias de rendimiento de redes para el modo de conexión directa
Personalización del modo de conexión de puerta de enlace
El modo de puerta de enlace se puede personalizar mediante CosmosClientOptions pasado al constructor CosmosClient . Se recomienda que los usuarios eviten modificarlos, a menos que se sientan cómodos en el reconocimiento de los inconvenientes y sea necesario.
Opción de configuración | Valor predeterminado | Recomendado | Detalles |
---|---|---|---|
GatewayModeMaxConnectionLimit | 50 | 50 | Esto representa el número máximo de conexiones simultáneas permitidas para el punto de conexión de servicio de destino en el servicio Azure Cosmos DB. |
WebProxy | null | null | Representa la información de proxy utilizada para las solicitudes web. |
Nota
Consulte también Procedimientos recomendados al usar el modo de puerta de enlace para el SDK v3 para NET de Azure Cosmos DB.
Pasos siguientes
Para más información sobre las sugerencias de rendimiento para el SDK de .NET, consulte Sugerencias de rendimiento para el SDK v3 para NET de Azure Cosmos DB.
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, consulte la información sobre el cálculo de unidades de solicitud mediante núcleos virtuales o CPU virtuales.
- Si conoce las tasas de solicitudes típicas de la carga de trabajo de la base de datos actual, obtenga información sobre el cálculo de unidades de solicitud mediante la herramienta de planeamiento de capacidad de Azure Cosmos DB.