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

  1. Inicie sesión en Azure Portal.

  2. Vaya a la cuenta de Azure Cosmos DB for MongoDB.

  3. Vaya al panel Características debajo de la sección Configuración.

  4. Seleccione Reintento en el servidor.

  5. Haga clic en Habilitar para habilitar esta característica para todas las colecciones de su cuenta.

Captura de pantalla de la característica de reintentos en el servidor de Azure Cosmos DB for MongoDB

Uso de la CLI de Azure

  1. Compruebe si SSR ya está habilitado para su cuenta:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. 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
    
  3. 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 ver los errores de limitación de velocidad (16500) con la métrica de solicitudes de mongo que se reintentan en el servidor en el panel de métricas de Azure Cosmos DB. Tenga en cuenta que estos errores no van al cliente cuando SSR está habilitado, ya que se controlan y se reintentan en el lado 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.