Partager via


Empêcher les erreurs de limitation de débit pour les opérations Azure Cosmos DB for MongoDB

S’APPLIQUE À : MongoDB

Les opérations Azure Cosmos DB for MongoDB peuvent subir une limitation de débit, entraînant des erreurs 16500 dans les métriques de requêtes Mongo, si elles dépassent la limite de débit (RU) d’une collection.

Activez Nouvelle tentative côté serveur (SSR) pour automatiser les nouvelles tentatives d’opération. SSR retente les requêtes dans toutes les collections de votre compte avec des délais courts. Si un délai d’expiration de 60 secondes est atteint, un client reçoit une exception ExceededTimeLimit (50).

Utilisation du portail Azure

  1. Connectez-vous au portail Azure.

  2. Accédez à votre compte Azure Cosmos DB for MongoDB.

  3. Accédez au volet Fonctionnalités dans la section Paramètres.

  4. Sélectionnez Server Side Retry (Nouvelle tentative côté serveur).

  5. Cliquez sur Activer pour activer cette fonctionnalité pour tous les collections dans votre compte.

Capture d’écran de la fonctionnalité de nouvelle tentative côté serveur pour Azure Cosmos DB for MongoDB

Utilisation de l’interface de ligne de commande Microsoft Azure

  1. Vérifiez si la fonctionnalité SSR est déjà activée pour votre compte :

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. Activez la fonctionnalité SSR pour toutes les collections dans votre compte de base de données. Jusqu’à quinze minutes peuvent être nécessaires pour que cette modification soit prise en compte.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. La commande suivante désactive la nouvelle tentative côté serveur pour toutes les collections dans votre compte de base de données en supprimant DisableRateLimitingResponses de la liste des capacités. Jusqu’à quinze minutes peuvent être nécessaires pour que cette modification soit prise en compte.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
    

Forum aux questions

Comment puis-je superviser les effets d’une nouvelle tentative côté serveur ?

Vous pouvez rechercher les entrées de journal contenant estimatedDelayFromRateLimitingInMilliseconds dans vos journaux de ressources Azure Cosmos DB.

La nouvelle tentative côté serveur a-t-elle une incidence sur mon niveau de cohérence ?

La nouvelle tentative côté serveur n’affecte pas la cohérence d’une demande. Les requêtes font l’objet d’une nouvelle tentative côté serveur si elles subissent une limitation de débit.

La nouvelle tentative côté serveur affecte-t-elle tout type d’erreur que mon client peut recevoir ?

Non, la nouvelle tentative côté serveur affecte uniquement les erreurs de limitation de débit en effectuant une nouvelle tentative côté serveur. Cette fonctionnalité vous évide d’avoir à gérer les erreurs de limitation de débit dans l’application cliente. Toutes les autres erreurs sont dirigées vers le client.

Étapes suivantes

Pour en savoir plus sur la résolution des erreurs courantes, consultez cet article :

Vous tentez d’effectuer une planification de la capacité pour une migration vers Azure Cosmos DB ? Vous pouvez utiliser les informations sur votre cluster de bases de données existant pour la planification de la capacité.