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
Zaloguj się w witrynie Azure Portal.
Przejdź do konta usługi Azure Cosmos DB dla bazy danych MongoDB.
Przejdź do okienka Funkcje poniżej sekcji Ustawienia .
Wybierz pozycję Ponawianie po stronie serwera.
Kliknij przycisk Włącz , aby włączyć tę funkcję dla wszystkich kolekcji na koncie.
Korzystanie z interfejsu wiersza polecenia platformy Azure
Sprawdź, czy usługa SSR jest już włączona dla Twojego konta:
az cosmosdb show --name accountname --resource-group resourcegroupname
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
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.
- Aby dowiedzieć się, jak redystrybuować przepływność między partycjami, zobacz Dowiedz się, jak redystrybuować przepływność między partycjami
- Jeśli wiesz, ile rdzeni wirtualnych i serwerów znajduje się w istniejącym klastrze bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych
- Jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu planisty pojemności usługi Azure Cosmos DB