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
Connectez-vous au portail Azure.
Accédez à votre compte Azure Cosmos DB for MongoDB.
Accédez au volet Fonctionnalités dans la section Paramètres.
Sélectionnez Server Side Retry (Nouvelle tentative côté serveur).
Cliquez sur Activer pour activer cette fonctionnalité pour tous les collections dans votre compte.
Utilisation de l’interface de ligne de commande Microsoft Azure
Vérifiez si la fonctionnalité SSR est déjà activée pour votre compte :
az cosmosdb show --name accountname --resource-group resourcegroupname
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
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é.
- Pour savoir comment redistribuer le débit entre les partitions, consultez Découvrir comment redistribuer le débit entre les partitions.
- Si vous ne connaissez que le nombre de vCore et de serveurs présents dans votre cluster de bases de données existantes, lisez l’article sur l’estimation des unités de requête à l’aide de vCore ou de processeurs virtuels
- Si vous connaissez les taux de requêtes typiques de votre charge de travail de base de données actuelle, lisez la section concernant l’estimation des unités de requête à l’aide du planificateur de capacité Azure Cosmos DB