Zapobieganie błędom ograniczania szybkości dla operacji w ramach usługi Azure Cosmos DB for MongoDB

DOTYCZY: Mongodb

Operacje usługi Azure Cosmos DB dla bazy danych MongoDB mogą napotkać ograniczanie szybkości, co powoduje błędy 16500 w metrykach żądań mongo, jeśli przekraczają limit przepływności kolekcji (RU).

Włącz ponawianie po stronie serwera (SSR), aby zautomatyzować ponawianie prób operacji. Usługa SSR ponawia próby żądań we wszystkich kolekcjach na koncie z krótkimi opóźnieniami. Jeśli osiągnięto limit czasu 60 sekund, klient otrzyma wyjątek ExceededTimeLimit (50).

Korzystanie z witryny Azure Portal

  1. Zaloguj się w witrynie Azure Portal.

  2. Przejdź do konta usługi Azure Cosmos DB dla bazy danych MongoDB.

  3. Przejdź do okienka Funkcje poniżej sekcji Ustawienia.

  4. Wybierz pozycję Ponawianie po stronie serwera.

  5. Kliknij przycisk Włącz , aby włączyć tę funkcję dla wszystkich kolekcji na koncie.

Zrzut ekranu przedstawiający funkcję ponawiania po stronie serwera dla usługi Azure Cosmos DB dla bazy danych MongoDB

Korzystanie z interfejsu wiersza polecenia platformy Azure

  1. Sprawdź, czy usługa SSR jest już włączona dla Twojego konta:

    az cosmosdb show --name accountname --resource-group resourcegroupname
    
  2. Włącz funkcję SSR dla wszystkich kolekcji na koncie bazy danych. Zastosowanie tej zmiany może potrwać do 15 minut.

    az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableMongo DisableRateLimitingResponses
    
  3. Następujące polecenie spowoduje wyłączenie ponawiania po stronie serwera dla wszystkich kolekcji na koncie bazy danych przez usunięcie DisableRateLimitingResponses z listy możliwości. Zastosowanie tej zmiany może potrwać do 15 minut.

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

Często zadawane pytania

Jak mogę monitorować skutki ponawiania po stronie serwera?

Możesz wyświetlić błędy ograniczania szybkości (16500) za pomocą metryki żądań mongo, które są ponawiane po stronie serwera w okienku Metryki usługi Azure Cosmos DB. Należy pamiętać, że te błędy nie przechodzą do klienta po włączeniu usługi SSR, ponieważ są one obsługiwane i ponawiane po stronie serwera.

W dziennikach zasobów usługi Azure Cosmos DB można wyszukać wpisy dziennika zawierające szacowane wartościDelayFromRateLimitingInMilliseconds.

Czy ponawianie po stronie serwera wpłynie na mój poziom spójności?

Ponawianie po stronie serwera nie ma wpływu na spójność żądania. Żądania są ponawiane po stronie serwera, jeśli są one ograniczone.

Czy ponawianie po stronie serwera ma wpływ na jakikolwiek typ błędu, który może zostać wyświetlony przez mojego klienta?

Nie, ponawianie po stronie serwera wpływa tylko na błędy ograniczania szybkości przez ponawianie próby po stronie serwera. Ta funkcja uniemożliwia obsługę błędów ograniczania szybkości w aplikacji klienckiej. Wszystkie inne błędy trafią do klienta.

Następne kroki

Aby dowiedzieć się więcej na temat rozwiązywania typowych błędów, zobacz ten artykuł:

Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB? Informacje o istniejącym klastrze bazy danych można użyć do planowania pojemności.