Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Cassandra
Služba Azure Cosmos DB normalizuje náklady na všechny databázové operace a vyjadřuje je jednotkami žádostí (RU). Jednotka žádosti je měna výkonu, která abstrahuje systémové prostředky, jako jsou procesor, IOPS a paměť, které jsou potřeba k provádění databázových operací podporovaných službou Azure Cosmos DB.
Operace Azure Cosmos DB pro Apache Cassandra můžou selhat s chybami omezování rychlosti (PřetíženíException/429), pokud překročí limit propustnosti tabulky (RU). To je možné zpracovat na straně klienta, jak je popsáno zde. Pokud se zásady opakování klienta nedají implementovat pro zpracování selhání kvůli chybě omezování rychlosti, můžeme využít funkci opakování na straně serveru( SSR), kde se operace, které překračují limit propustnosti tabulky, po krátké prodlevě automaticky opakují. Toto je nastavení na úrovni účtu, které platí pro všechny klíčové mezery a tabulky v účtu.
Použití portálu Azure Portal
Přihlaste se k portálu Azure.
Přejděte ke svému účtu Azure Cosmos DB for Apache Cassandra.
Přejděte do podokna Funkce pod oddílem Nastavení .
Vyberte Server-Side Retry.
Pokud chcete povolit tuto funkci pro všechny kolekce ve vašem účtu, vyberte Povolit .
Použití Azure CLI
Zkontrolujte, jestli je pro váš účet už povolené rozhraní SSR:
az cosmosdb show --name accountname --resource-group resourcegroupnamePovolte SSR pro všechny tabulky v databázovém účtu. Může trvat až 15 minut, než se tato změna projeví.
az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableCassandra DisableRateLimitingResponsesNásledující příkaz zakáže opakování na straně serveru pro všechny tabulky v databázovém účtu odebráním
DisableRateLimitingResponsesze seznamu funkcí. Může trvat až 15 minut, než se tato změna projeví.az cosmosdb update --name accountname --resource-group resourcegroupname --capabilities EnableCassandra
Nejčastější dotazy
Jak se žádosti opakují?
Žádosti se budou opakovat nepřetržitě (znovu a znovu), dokud nedosáhnete 60sekundového časového limitu. Pokud dojde k vypršení časového limitu, klient odpovídajícím způsobem obdrží chybu vypršení časového limitu čtení nebo zápisu.
Kdy je SSR nejvhodnější?
Opakování na straně serveru (SSR) je nejvýhodnější v případě, že dojde k náhlému nárůstu trvajícímu méně než 1 minutu, kdy je možné vyhnout se chybám způsobeným omezováním. Pokud se pracovní zátěž zvýšila a zůstala by neustále nad stanovenou hodnotou RU, SSR nebude příliš účinný. Návrhem je odpovídajícím způsobem zvýšit RU.
Navrhovaná nastavení na straně klienta?
Po povolení SSR by klientská aplikace měla zvýšit časový limit čtení nad rámec nastavení opakování serveru o 60 sekund. Doporučujeme 90 sekund pro jistotu.
Ukázkový kód ovladače 3
SocketOptions socketOptions = new SocketOptions()
.setReadTimeoutMillis(90000);
Driver4 Ukázka kódu
ProgrammaticDriverConfigLoaderBuilder configBuilder = DriverConfigLoader.programmaticBuilder()
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(90));
Jak můžu monitorovat účinky opakování na straně serveru?
Chyby omezování rychlosti (429), které se opakovaně zkouší na straně serveru, můžete zobrazit v podokně Metriky služby Azure Cosmos DB. Tyto chyby se k klientovi nedostanou, když je povoleno SSR, protože se zpracovávají a opětovně řeší na straně serveru.
V protokolech prostředků Azure Cosmos DB můžete vyhledat položky protokolu obsahující estimatedDelayFromRateLimitingInMilliseconds ve vašich protokolech prostředků Azure Cosmos DB.
Bude opakování na straně serveru mít vliv na úroveň konzistence?
Opakování na straně serveru nemá vliv na úrovně konzistence. Požadavky se budou opakovat na straně serveru, pokud jsou omezené rychlostí (chyba 429).
Má opakování na straně serveru vliv na nějaký typ chyby, kterou může klient obdržet?
Ne, opakování na straně serveru ovlivňuje pouze chyby omezování rychlosti (429) tím, že je opakuje na straně serveru. Tato funkce vám brání v zpracování chyb omezování rychlosti v klientské aplikaci. Všechny ostatní chyby jdou ke klientovi.
Další kroky
Další informace o řešení běžných chyb najdete v tomto článku:
Informace o zřizování propustnosti ve službě Azure Cosmos DB najdete v následujících článcích: