Dela via


Förhindra frekvensbegränsande fel för Azure Cosmos DB för MongoDB-funktioner

GÄLLER FÖR: MongoDB

Azure Cosmos DB för MongoDB-åtgärder kan stöta på hastighetsbegränsning, vilket resulterar i 1 6500 fel i mongo-begärandemått, om de överskrider en samlings dataflödesgräns (RU:er).

Aktivera SSR (Server Side Retry) för att automatisera återförsök. SSR försöker skicka begäranden på nytt i alla samlingar på ditt konto med korta fördröjningar. Om en tidsgräns på 60 sekunder uppnås får en klient ett ExceededTimeLimit-undantag (50).

Använda Azure Portal

  1. Logga in på Azure-portalen.

  2. Gå till ditt Azure Cosmos DB för MongoDB-konto.

  3. Gå till fönstret Funktioner under avsnittet Inställningar .

  4. Välj Försök igen på serversidan.

  5. Klicka på Aktivera för att aktivera den här funktionen för alla samlingar i ditt konto.

Skärmbild av funktionen för återförsök på serversidan för Azure Cosmos DB för MongoDB

Använda Azure CLI

  1. Kontrollera om SSR redan är aktiverat för ditt konto:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. Aktivera SSR för alla samlingar i ditt databaskonto. Det kan ta upp till 15 minuter innan ändringen börjar gälla.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. Följande kommando inaktiverar återförsök på serversidan för alla samlingar i databaskontot genom att ta bort DisableRateLimitingResponses från listan över funktioner. Det kan ta upp till 15 minuter innan ändringen börjar gälla.

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

Vanliga frågor och svar

Hur kan jag övervaka effekterna av ett nytt försök på serversidan?

Du kan visa hastighetsbegränsningsfelen (16500) med måttet mongo-begäranden som görs om på serversidan i fönstret Mått för Azure Cosmos DB. Tänk på att dessa fel inte går till klienten när SSR är aktiverat, eftersom de hanteras och görs om på serversidan.

Du kan söka efter loggposter som innehåller estimatedDelayFromRateLimitingInMilliseconds i dina Azure Cosmos DB-resursloggar.

Kommer återförsök på serversidan att påverka min konsekvensnivå?

Återförsök på serversidan påverkar inte konsekvensen för en begäran. Begäranden görs på nytt på serversidan om de är hastighetsbegränsade.

Påverkar omförsök på serversidan någon typ av fel som min klient kan ta emot?

Nej, omförsök på serversidan påverkar endast hastighetsbegränsningsfel genom att försöka igen på serversidan. Den här funktionen hindrar dig från att behöva hantera hastighetsbegränsningsfel i klientprogrammet. Alla andra fel går till klienten.

Nästa steg

Mer information om hur du felsöker vanliga fel finns i den här artikeln:

Försöker du planera kapacitet för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.