Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon V Mongodb


V Mongodb


MongoDB Sharded Clasters poskytujú výkonnú metódu na horizontálne škálovanie veľkých súborov údajov distribúciou údajov na viacerých serveroch alebo úlomkoch, čo umožňuje databáze zvládnuť efektívne vysoké priepustenie a veľké množstvo údajov.

MongoDb Sharded Cluster pozostáva predovšetkým z troch hlavných komponentov: črepy, konfiguračné servery a smerovače Mongos. Každá shard je súprava repliky obsahujúca podmnožinu údajov klastrov. Replika Sada zabezpečuje redundanciu údajov a vysokú dostupnosť údajov na každom črepke. Konfiguračné servery ukladajú metadáta a detaily konfigurácie o klastri vrátane mapovania kusov údajov do črepov. Mongos pôsobí ako smerovacia služba, ktorá rozhnevá s klientskymi aplikáciami a nasmeruje dotazy na príslušné úlomky na základe kľúču Shard.

Sharding v MongoDB je navrhnutý tak, aby umožnil horizontálne škálovanie rozdelením údajov cez črepy pomocou vybraného kľúča Shard. Toto rozdelenie vytvára kúsky údajov distribuované rovnomerne medzi črepy, čo umožňuje MongoDB šíriť zaťaženie čítaní a zápisov. Dotazy, ktoré zahŕňajú kľúče Shard alebo predpony zloženého kľúča Shard, môžu Mongos efektívne smerovať na konkrétne úbky, znížiť režijné náklady na dopyt a zlepšiť výkon. Ak dotaz neobsahuje kľúč Shard, Mongos môže vysielať dotaz do všetkých črepov, čo je menej efektívne.

Črepy v klastri sú škálovateľné; Dodatočné črepy je možné dynamicky pridať, aby sa prispôsobil rastu objemu údajov alebo zaťaženia dotazov bez prestojov. Každá črep je nastavená replika na zabezpečenie tolerancie porúch a celkový dizajn klastrov podporuje vysokú dostupnosť. MongoDB automaticky vyvažuje údaje naprieč úbočkami a prerozdeľuje kúsky údajov podľa potreby na udržanie rovnomerného pracovného zaťaženia medzi úbočkami.

Konfiguračné servery zohrávajú rozhodujúcu úlohu pri riadení metadát klastru, pri ukladaní informácií o štruktúre klastrov a distribúcii údajov. Konfiguračné servery musia byť nasadené ako replika set pre vysokú dostupnosť. Synchronizujú sa s smerovačmi Mongos, ktoré lokálne vyrovnávajú metadáta, aby efektívne smerovali dotazy. Konzistentný stav metadát na konfiguračných serveroch je nevyhnutný pre správnu prevádzku shardovaného klastra.

Inštancie Mongos pôsobia ako smerovače Query, ktoré poskytujú vrstvu rozhrania medzi klientskymi aplikáciami a Sharded Cluster. Abstraktujú zložitosť prepretého prostredia smerovaním operácií do správnych črepov založených na metadátach z konfiguračných serverov. Na vyváženie záťaže a vysokú dostupnosť je možné nasadiť viacero inštancií Mongosu a mali by byť umiestnené v blízkosti aplikačných serverov, aby sa znížila latencia siete.

Kľúčovým aspektom hanbrovaných zhlukov je výber Key SHARD. Kľúč Shard upravuje, ako sú údaje rozdelené, priamo ovplyvňujúc výkonnosť klastrov a distribúciu údajov. Výber príslušného kľúča SHARD vyžaduje analýzu pracovného zaťaženia, aby sa zabezpečila rovnomerná distribúcia operácií čítania a zápisu naprieč čelím. Akonáhle je zbierka zapaľovaná pomocou konkrétneho kľúča SHARD, zmena kľúču Shard je zložitá a zvyčajne zahŕňa časovo náročný proces migrácie údajov. Preto je dôležitý výber starostlivého výberu kľúča SHARD vopred.

Vo výrobných prostrediach zahŕňajú osvedčené postupy pre brúsené zhluky nasadenie konfiguračných serverov a črepov ako repliky vo viacerých dátových centrách, aby sa zabezpečila tolerancia porúch a vysoká dostupnosť. Každý úpadok sa odporúča byť sadou repliiek s tromi uzlami. Klastre vyžadujú najmenej dva črepy, hoci ak sa v budúcnosti plánuje plánovacie skrytie, môžu sa použiť klastre s jedným skrutkom.

Sharding zlepšuje kapacitu databázy zvýšením limitov úložiska prostredníctvom distribuovaného ukladania údajov cez úahky. Zlepšuje tiež výkon distribúciou čítaní a zápisov, čo umožňuje spracovanie pracovného zaťaženia s vyššou priepustnosťou. Okrem toho si napadnutý klaster môže zachovať čiastočnú dostupnosť počas výpadkov Shard; Zatiaľ čo údaje o postihnutých črepoch môžu byť neprístupné, klaster pokračuje v poskytovaní žiadostí o dostupné črepy.

V hrešovanom klastri sú údaje rozdelené na kúsky v rozsahu definovanom Kľúčom Shard. MongoDB konfiguruje veľkosti kusov, ktoré ovplyvňujú spôsob, akým sú údaje rozdelené a vyvážené cez črepy. Kusové migrácie a procesy vyváženia sa automaticky riešia klaster, aby sa udržala rovnomerná distribúcia údajov a optimálny výkon. Toto automatické vyváženie zaisťuje, že sa žiadny úpadok nestane prekážkou výkonu alebo úložného priestoru.

Sharded Clusters tiež podporujú zóny (Sharding Tag-Aware), čo umožňuje zoskupenie údajov a obmedzené na konkrétne úbky na základe združení zón. Táto funkcia umožňuje kontrolovanejšiu dátovú lokalitu a je užitočná pre požiadavky na dodržiavanie alebo geografické rozdelenie. Zóny sú priradené rozsahy hodnôt kľúčov Shard a sú spojené s úlomkami na kontrolu umiestnenia údajov podrobnejšie.

Medzi obmedzenia a prevádzkové úvahy patrí zložitosť riadenia viacerých úlomkov a zvýšené prevádzkové režijné náklady. Latencia siete medzi komponentmi a režijnou hlavou udržiavania metadát servera konfiguračného servera a smerovania môže ovplyvniť výkon, ak nie je správne spravovaný. Nasadenie viacerých smerovačov Mongos a konfiguračných serverov a monitorovanie ich zdravia je nevyhnutné, aby sa predišlo zhoršeniu výkonu. Počet inštancií Mongos by mal byť vyvážený, pretože nadmerné inštancie Mongos môžu viesť k častej komunikácii s konfiguračnými servermi a možnému dopadu na výkon klastrov.

Niektoré limity platia v hostovaných alebo spravovaných verziách klastí MongoDB Sharded, ako je Azure Cosmos DB pre API MongoDB, vrátane počtu Shardov, úložiska a limitov zdrojov na Shard alebo klaster. Tieto limity špecifické pre platformu sa líšia a môžu byť vyššie s prémiovými úrovňami.

Celkovo poskytujú MongoDB Sharded Clusters robustný základ pre škálovanie moderných aplikácií s veľkými, rastúcimi dátovými súbormi distribúciou údajov a operácií transparentne vo viacerých uzloch, zabezpečením výkonu, tolerancie porúch a škálovateľnosti prostredníctvom inteligentného rozdelenia údajov a nasadenia repliky.