Evitación de errores de limitación de velocidad para las operaciones de Azure Cosmos DB for MongoDB
SE APLICA A: MongoDB
Es posible que haya una limitación de velocidad en las operaciones de Azure Cosmos DB for MongoDB, que dará lugar a errores 16500 en las métricas de solicitud de mongo si superan el límite de rendimiento de una colección (RU).
Habilite el reintento del lado servidor (SSR) para automatizar los reintentos de operación. SSR reintenta las solicitudes en todas las colecciones de la cuenta con retrasos cortos. Si se alcanza el tiempo de espera de 60 segundos, el cliente recibe una excepción ExceededTimeLimit (50).
Uso de Azure Portal
Inicie sesión en Azure Portal.
Vaya a la cuenta de Azure Cosmos DB for MongoDB.
Vaya al panel Características debajo de la sección Configuración.
Seleccione Reintento en el servidor.
Haga clic en Habilitar para habilitar esta característica para todas las colecciones de su cuenta.
Uso de la CLI de Azure
Compruebe si SSR ya está habilitado para su cuenta:
az cosmosdb show --name accountname --resource-group resourcegroupname
Habilite SSR para todas las colecciones de la cuenta de bases de datos. Este cambio puede tardar un máximo de 15 minutos en surtir efecto.
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
El siguiente comando deshabilitará el reintento en el servidor en todas las colecciones de la cuenta de base de datos, ya que elimina
DisableRateLimitingResponses
de la lista de funcionalidades. Este cambio puede tardar un máximo de 15 minutos en surtir efecto.az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
Preguntas más frecuentes
¿Cómo se pueden supervisar los efectos de un reintento en el servidor?
Puede buscar entradas de registro que contengan estimatedDelayFromRateLimitingInMilliseconds en los registros de recursos de Azure Cosmos DB.
¿Afectará el reintento en el servidor a mi nivel de consistencia?
El reintento en el servidor no afecta a la consistencia de ninguna solicitud. Las solicitudes se reintentan en el lado servidor si tienen la velocidad limitada.
¿Afecta el reintento en el servidor a cualquier tipo de error que pueda recibir mi cliente?
No, solo afecta a los errores de limitación de velocidad al volver a intentar en el servidor. Esta característica evita que tenga que controlar los errores de limitación de velocidad en la aplicación cliente. Todos los otros errores irán al cliente.
Pasos siguientes
Para obtener más información sobre la solución de errores comunes, consulte este artículo:
¿Intenta planear la capacidad de una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.
- Para obtener información sobre cómo redistribuir el rendimiento entre particiones, consulte Aprenda a redistribuir el rendimiento entre particiones
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, lea sobre el cálculo de unidades de solicitud mediante núcleos 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.