Evitare errori di limitazione della frequenza per operazioni di Azure Cosmos DB per MongoDB
SI APPLICA A: MongoDB
Le operazioni di Azure Cosmos DB per MongoDB potrebbero riscontrare una limitazione della frequenza, causando 16500 errori nelle metriche delle richieste mongo, se superano il limite di velocità effettiva di una raccolta (UR).
Abilitare La ripetizione dei tentativi lato server (SSR) per automatizzare i tentativi di operazione. SSR ritenta le richieste in tutte le raccolte nell'account con brevi ritardi. Se viene raggiunto un timeout di 60 secondi, un client riceve un'eccezione ExceededTimeLimit (50).
Usare il portale di Azure
Accedere al portale di Azure.
Passare all'account Azure Cosmos DB for MongoDB.
Passare al riquadro Funzionalità alla sezione Impostazioni.
Selezionare Retry lato server.
Fare clic su Abilita per abilitare questa funzionalità per tutte le raccolte nell'account.
Usare l'interfaccia della riga di comando di Azure
Controllare se SSR è già abilitato per l'account:
az cosmosdb show --name accountname --resource-group resourcegroupname
Abilitare SSR per tutte le raccolte nell'account del database. Affinché la modifica diventi effettiva potrebbero essere necessari fino a 15 minuti.
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
Il comando seguente Disabilita il retry lato server per tutte le raccolte nell'account di database rimuovendo
DisableRateLimitingResponses
dall'elenco delle funzionalità. Affinché la modifica diventi effettiva potrebbero essere necessari fino a 15 minuti.az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo
Domande frequenti
Come è possibile monitorare gli effetti di un retry lato server?
È possibile cercare voci di log contenenti estimatedDelayFromRateLimitingInMilliseconds nei log delle risorse di Azure Cosmos DB.
Il retry sul lato server influisce sul livello di coerenza?
Il nuovo tentativo sul lato server non influisce sulla coerenza di una richiesta. Le richieste vengono ritentate sul lato server se sono limitate.
Il retry lato server influisce su qualsivoglia tipo di errore che il client potrebbe ricevere?
No, il nuovo tentativo sul lato server influisce solo sugli errori di limitazione della frequenza ritentandoli sul lato server. Questa funzionalità impedisce di gestire gli errori di limitazione della frequenza nell'applicazione client. Tutti gli altri errori verranno visualizzati nel client.
Passaggi successivi
Per altre informazioni sulla risoluzione degli errori comuni, vedere questo articolo:
Si sta tentando di pianificare la capacità per una migrazione ad Azure Cosmos DB? È possibile usare le informazioni del cluster di database esistente per la pianificazione della capacità.
- Per informazioni su come ridistribuire la velocità effettiva tra partizioni, vedere Informazioni su come ridistribuire la velocità effettiva tra partizioni
- Se si conosce solo il numero di vcore e server nel cluster di database esistente, leggere le informazioni sulla stima delle unità richieste usando vCore o vCPU
- Se si conosce la frequenza delle richieste tipiche per il carico di lavoro corrente del database, leggere le informazioni sulla stima delle unità richieste con lo strumento di pianificazione della capacità di Azure Cosmos DB