Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Kasandra
Koszt wszystkich operacji bazy danych jest znormalizowany przez usługę Azure Cosmos DB i jest wyrażony przez jednostki żądań (RU). Jednostka zapytań jest miarą wydajności, która odzwierciedla abstrakcję zasobów systemowych, takich jak CPU, IOPS i pamięć, wymaganych do realizacji operacji bazodanowych wspieranych przez Azure Cosmos DB.
Operacje usługi Azure Cosmos DB dla systemu Apache Cassandra mogą zakończyć się niepowodzeniem z powodu błędów ograniczania szybkości (OverloadedException/429), jeśli przekraczają limit przepustowości tabeli (RU). Można to obsłużyć po stronie klienta, zgodnie z opisem w tym miejscu. Jeśli nie można zaimplementować zasad ponawiania prób klienta w celu obsługi awarii z powodu błędu ograniczania szybkości, możemy użyć funkcji ponawiania po stronie serwera (SSR), w której operacje przekraczające limit przepływności tabeli zostaną ponawiane automatycznie po krótkim opóźnieniu. Jest to ustawienie na poziomie konta i dotyczy wszystkich przestrzeni kluczowych i tabel na koncie.
Korzystanie z witryny Azure Portal
Zaloguj się w witrynie Azure Portal.
Przejdź do swojego konta usługi Azure Cosmos DB dla bazy danych Apache Cassandra.
Przejdź do okienka Funkcje poniżej sekcji Ustawienia .
Wybierz Ponowne próby po stronie serwera.
Kliknij przycisk Włącz , aby włączyć tę funkcję dla wszystkich kolekcji na koncie.
Użycie Azure CLI
Sprawdź, czy usługa SSR jest już włączona dla Twojego konta:
az cosmosdb show --name accountname --resource-group resourcegroupnameWłącz funkcję SSR dla wszystkich tabel na koncie bazy danych. Zastosowanie tej zmiany może potrwać do 15 minut.
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableCassandra DisableRateLimitingResponsesNastępujące polecenie spowoduje wyłączenie ponawiania po stronie serwera dla wszystkich tabel na koncie bazy danych przez usunięcie
DisableRateLimitingResponsesz listy możliwości. Zastosowanie tej zmiany może potrwać do 15 minut.az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableCassandra
Często zadawane pytania
W jaki sposób żądania są ponawiane?
Żądania są stale ponawiane (bez przerwy) do momentu osiągnięcia 60-sekundowego limitu czasu. Jeśli limit czasu zostanie osiągnięty, klient otrzyma odpowiednio błąd przekroczenia limitu czasu odczytu lub zapisu
Kiedy SSR jest najbardziej korzystna?
Ponawianie po stronie serwera (SSR) jest najbardziej korzystne w przypadku nagłego skoku trwającego mniej niż 1 minutę, gdzie można uniknąć błędów związanych z ograniczeniem przepustowości. Jeśli obciążenie pracy zwiększy się i pozostanie stale powyżej określonych jednostek zasobów, wtedy mechanizm SSR nie pomoże zbyt wiele. Sugestia jest, aby odpowiednio zwiększyć RU.
Sugerowane ustawienia po stronie klienta?
Po włączeniu funkcji SSR aplikacja kliencka powinna zwiększyć limit czasu odczytu poza ustawieniem ponawiania próby 60 sekund na serwerze. Zalecamy 90 sekund, aby być po bezpiecznej stronie.
Przykładowy sterownik kodu3
SocketOptions socketOptions = new SocketOptions()
.setReadTimeoutMillis(90000);
Przykład kodu Driver4
ProgrammaticDriverConfigLoaderBuilder configBuilder = DriverConfigLoader.programmaticBuilder()
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(90));
Jak mogę monitorować skutki ponawiania po stronie serwera?
Możesz wyświetlić błędy ograniczania szybkości (429), które są ponawiane po stronie serwera w okienku Metryki usługi Azure Cosmos DB. Te błędy nie przechodzą do klienta, gdy usługa SSR jest włączona, ponieważ są one obsługiwane i ponawiane po stronie serwera.
Możesz wyszukiwać wpisy dzienników zawierające estimatedDelayFromRateLimitingInMilliseconds w dziennikach zasobów Azure Cosmos DB.
Czy ponawianie po stronie serwera wpłynie na mój poziom spójności?
Ponawianie po stronie serwera nie ma wpływu na poziomy spójności. Żądania są ponawiane po stronie serwera, jeśli są one ograniczone (błąd 429).
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 dotyczy tylko błędów ograniczania szybkości (429), próbując je ponownie po stronie serwera. Ta funkcja zapobiega konieczności obsługi 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ł:
Zobacz następujące artykuły, aby dowiedzieć się więcej na temat zarządzania przepustowością w usłudze Azure Cosmos DB.