elastické škálování účtu Azure Cosmos DB rozhraní API Cassandra
PLATÍ PRO:
rozhraní API Cassandra
k dispozici je celá řada možností, jak prozkoumat elastickou povahu rozhraní Azure Cosmos DB API pro Cassandra. pokud chcete pochopit, jak efektivně škálovat v Azure Cosmos DB, je důležité pochopit, jak zřídit správné množství jednotek žádostí (RU/s), aby se zohlednily nároky na výkon ve vašem systému. Další informace o jednotkách žádostí najdete v článku o jednotkách žádosti .
Pro rozhraní API Cassandra můžete načíst poplatek za jednotky žádosti pro jednotlivé dotazy pomocí sad .NET a Java SDK. To je užitečné při určování množství RU/s, které budete muset zřídit ve službě.
Omezení rychlosti zpracování (429 chyb)
Azure Cosmos DB vrátí chyby s omezením četnosti (429), pokud klienti spotřebují více prostředků (RU/s), než je množství, které jste zřídili. rozhraní API Cassandra v Azure Cosmos DB překládá tyto výjimky na přetížené chyby v nativním protokolu Cassandra.
Pokud váš systém není citlivý na latenci, může být dostačující pro zpracování rychlosti propustnosti pomocí opakovaných pokusů. V tématu ukázky kódu Java pro verze 3 a 4 pro ovladače Apache Cassandra Java pro zpracování omezení četnosti transparentně. Tyto ukázky implementují vlastní verzi výchozích zásad opakování Cassandra v jazyce Java. K obsluze omezení rychlosti můžete také použít rozšíření Spark . Při používání Sparku se ujistěte, že jste provedete naše pokyny k optimalizaci konfigurace propustnosti Spark Connectoru.
Správa škálování
Pokud potřebujete minimalizovat latenci, existuje spektrum možností správy škálování a propustnosti (ru) v rozhraní API Cassandra:
- Ručně pomocí Azure Portal
- Prostřednictvím kódu programu pomocí funkce plochy ovládacího prvku
- Prostřednictvím kódu programu pomocí příkazů CQL s konkrétní sadou SDK
- Dynamicky pomocí automatického škálování
Následující části vysvětlují výhody a nevýhody jednotlivých přístupů. Pak se můžete rozhodnout, co nejlepší strategii pro vyrovnání požadavků na škálování vašeho systému, celkových nákladů a potřeb efektivity pro vaše řešení.
Použití Azure Portal
prostředky můžete škálovat v Azure Cosmos DB rozhraní API Cassandra účet pomocí Azure Portal. Další informace najdete v článku o zřízení propustnosti v kontejnerech a databázích. Tento článek vysvětluje relativní výhody nastavení propustnosti na úrovni databáze nebo kontejneru v Azure Portal. Výrazy "Database" a "Container" zmíněné v těchto článcích jsou mapovány na "místo" a "Tabulka" v tomto rozhraní API Cassandra.
Výhodou této metody je, že jde o jednoduchý klíč způsob, jak spravovat kapacitu propustnosti v databázi. Nevýhodou je však, že váš přístup k škálování může vyžadovat, aby určité úrovně automatizace byly nákladově efektivní a vysoké. Další části vysvětlují relevantní scénáře a metody.
Použití roviny ovládacího prvku
rozhraní API pro Azure Cosmos DB pro Cassandra poskytuje schopnost programově upravovat propustnost pomocí našich různých funkcí pro kontrolu rovin. Pokyny a ukázky najdete v článcích Azure Resource Manager, POWERSHELLa Azure CLI .
Výhodou této metody je, že můžete automatizovat horizontální navýšení nebo snížení kapacity prostředků na základě časovače k účtu aktivity špičky nebo obdobích s nízkou aktivitou. Podívejte se na naši ukázku, jak to můžete udělat pomocí Azure functions a PowerShellu.
Nevýhodou tohoto přístupu může být to, že nemůžete reagovat na nepředvídatelné změny potřeb škálování v reálném čase. Místo toho možná budete muset využít kontext aplikace v systému, na úrovni klienta/sady SDK nebo pomocí automatického škálování.
Použití dotazů CQL s konkrétní sadou SDK
Systém lze škálovat dynamicky pomocí kódu spuštěním příkazu ALTER CQL pro danou databázi nebo kontejner.
Výhodou tohoto přístupu je, že vám umožní reagovat na požadavky na škálování dynamicky a vlastním způsobem, který odpovídá vaší aplikaci. S tímto přístupem můžete dál využívat ceny a sazby Standard RU/s. Pokud jsou požadavky na škálování vašeho systému hlavně předvídatelné (přibližně 70% nebo více), může být použití sady SDK s CQL cenově výhodnější metodou automatického škálování než použití automatického škálování. Nevýhodou tohoto přístupu je, že může být poměrně složitá implementace opakování, zatímco omezení rychlosti může zvýšit latenci.
Použít zřízenou propustnost automatického škálování
Kromě standardního (ručního) nebo programového způsobu zřizování propustnosti můžete nakonfigurovat také kontejnery Azure Cosmos v propustnosti zřízené pomocí automatického škálování. Automatické škálování automaticky a okamžitě se škáluje podle potřeb spotřeby v zadaném rozsahu RU bez narušení SLA. další informace najdete v článku vytvoření kontejnerů a databází Azure Cosmos v článku věnovaném automatickému škálování .
Výhodou tohoto přístupu je, že je nejjednodušší způsob, jak spravovat požadavky na škálování ve vašem systému. Neuplatní se tak omezení četnosti v rámci konfigurovaných rozsahů ru. Nevýhodou je, že pokud jsou v systému předvídatelné požadavky na škálování, může být automatické škálování méně nákladově efektivním způsobem, jakým je potřeba zpracovat požadavky na škálování, než na základě výše uvedených přístupů na úrovni ovládacího prvku Bespoke nebo úrovně SDK.
Pokud chcete nastavit nebo změnit maximální propustnost (ru) pro automatické škálování pomocí CQL, použijte následující postup (podle toho, jak se má odpovídajícím způsobem nahradit místo nebo název tabulky):
# to set max throughput (RUs) for autoscale at keyspace level:
create keyspace <keyspace name> WITH cosmosdb_autoscale_max_throughput=5000;
# to alter max throughput (RUs) for autoscale at keyspace level:
alter keyspace <keyspace name> WITH cosmosdb_autoscale_max_throughput=4000;
# to set max throughput (RUs) for autoscale at table level:
create table <keyspace name>.<table name> (pk int PRIMARY KEY, ck int) WITH cosmosdb_autoscale_max_throughput=5000;
# to alter max throughput (RUs) for autoscale at table level:
alter table <keyspace name>.<table name> WITH cosmosdb_autoscale_max_throughput=4000;
Další kroky
- Začínáme s vytvořením účtu rozhraní API Cassandra, databáze a tabulky prostřednictvím aplikace Java