Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon „MongoDB“ skaldos klasteriai


„MongoDB“ skaldos klasteriai


„MongoDB Sharded“ klasteriai pateikia galingą metodą horizontaliai padidinti didelius duomenų rinkinius, paskirstant duomenis keliuose serveriuose ar skaldose, leidžiant duomenų bazei efektyviai valdyti didelį pralaidumą ir didelius duomenų kiekius.

„MongoDB Sharded“ klasterį daugiausia sudaro trys pagrindiniai komponentai: skaldos, konfigūracijos serveriai ir „Mongos“ maršrutizatoriai. Kiekvienas skiautelė yra replikos rinkinys, kuriame yra klasterio duomenų pogrupis. Replikos rinkiniai užtikrina duomenų perteklių ir aukštą duomenų apie kiekvieno skiautelę prieinamumą. „Config Servers“ saugo metaduomenis ir konfigūracijos duomenis apie klasterį, įskaitant duomenų gabaliukų žemėlapius į skiauteles. „Mongos“ veikia kaip maršruto parinkimo paslauga, kuri sąsaja su kliento programomis ir nukreipia užklausas į atitinkamas skiauteles, pagrįstas „Shard“ raktu.

„MongoDB“ šukas yra skirtas įgalinti horizontalų mastelį, padalijant duomenis per skiauteles per pasirinktą šarnyro raktą. Šis skaidymas sukuria duomenų gabalus, paskirstytus tolygiai tarp skiautelių, leidžiant „MongoDB“ skleisti skaitymų ir rašymo apkrovą. Užklausos, apimančios „Shard“ raktą ar junginio „Shard“ rakto priešdėlius, gali būti veiksmingai nukreipiamos „Mongos“ į konkrečias skiauteles, sumažinant užklausos pridėtinę vertę ir gerinant našumą. Jei užklausoje nėra „Shard“ rakto, „Mongos“ gali transliuoti užklausą visoms skardams, o tai yra mažiau efektyvi.

Klasterio skiautelės yra keičiamos; Papildomos skiautelės gali būti dinamiškai pridedamos, kad būtų galima augti duomenų tūrio ar užklausos apkrovai be prastovos. Kiekvienas skiautas yra replikos rinkinys, užtikrinantis toleranciją gedimams, o bendras klasterio dizainas palaiko aukštą prieinamumą. „MongoDB“ automatiškai subalansuoja duomenis per skiauteles, prireikus perskirstant duomenų dalis, kad būtų išlaikytas lygus darbo krūvis tarp skiautelių.

Konfigūruoti serveriai vaidina svarbų vaidmenį valdant klasterio metaduomenis, saugant informaciją apie klasterio struktūrą ir duomenų paskirstymą. Konfigūruoti serveriai turi būti diegti kaip replikos rinkinys, kad būtų galima pasiekti aukštą prieinamumą. Jie sinchronizuojasi su „Mongos“ maršrutizatoriais, kurie talpyklos metaduomenys vietoje efektyviai nukreipia užklausas. Nuosekli metaduomenų būklė konfigūracijos serveriuose yra būtina tinkamai veikiant skaldytą klasterį.

„Mongos“ egzemplioriai veikia kaip užklausų maršrutizatoriai, kurie teikia sąsajos sluoksnį tarp kliento programų ir skiautos klasterio. Jie absorbuoja apnuogintos aplinkos sudėtingumą, nukreipdami operacijas į teisingus skiauteles, remiantis metaduomenimis iš konfigūracijos serverių. Keli mongos egzemplioriai gali būti diegti apkrovos balansavimui ir dideliam prieinamumui, todėl jie turėtų būti dedami arti programų serverių, kad būtų sumažintas tinklo delsos.

Svarbiausias „Sharded“ klasterių aspektas yra „Shard Key“ pasirinkimas. „Shard“ raktas reglamentuoja, kaip duomenys yra padalijami, tiesiogiai paveikdami klasterio našumą ir duomenų paskirstymą. Norint pasirinkti tinkamą „Shard“ raktą, reikia išanalizuoti darbo krūvį, kad būtų užtikrintas tolygus skaitymo ir rašymo operacijų pasiskirstymas per skiauteles. Kai sukuriama „Sharded“ kolekcija su konkrečiu „Shard“ raktu, keitimas „Shard“ klavišas yra sudėtingas ir paprastai apima daug laiko reikalaujantį duomenų perkėlimo procesą. Taigi iš anksto svarbu kruopštus „Shard“ raktų pasirinkimas.

Gamybos aplinkoje gera klasterių praktika apima konfigūracijos serverių ir skardų diegimą, nes replikos nustato keliuose duomenų centruose, kad būtų užtikrintas tolerancija gedimams ir dideliam prieinamumui. Kiekvienas skiautas rekomenduojamas būti trijų mazgų replikos rinkinys. Klasteriams reikia mažiausiai dviejų skiautelių, nors ateityje planuojama vienkartinių skiautinių klasterių klasteriai.

„Sharding“ pagerina duomenų bazės talpą, padidindama saugojimo ribas per paskirstytus duomenų saugojimą per skiauteles. Tai taip pat pagerina našumą platinant skaitymus ir raštus, o tai leidžia valdyti didesnius pralaidumo darbo krūvius. Be to, skutimasis klasteris gali išlaikyti dalinį prieinamumą atliekant skiautelę; Nors duomenys apie paveiktas skiauteles gali būti neprieinamas, klasteris tęsia aptarnaujančių užklausų dėl turimų skiautelių.

Smulkintoje klasteryje duomenys yra suskirstyti į gabaliukus, esančius diapazone, apibrėžtą „Shard“ klavišu. „MongoDB“ sukonfigūruoja gabaliukų dydžius, kurie daro įtaką duomenų padalijimui ir subalansuoti per skiauteles. Klasteris automatiškai tvarko gabaliukų migraciją ir balansavimo procesus, kad būtų išlaikytas lygus duomenų paskirstymas ir optimalus našumas. Šis automatinis balansavimas užtikrina, kad nė vienas „Shard“ netaps našumo kliūtimi ar laikymo tašku.

„Sharded“ klasteriai taip pat palaiko zonas („Tag-Aware Sharding“), leidžiančios sugrupuoti duomenis ir apsiriboti konkrečiomis skiautelėmis, pagrįstomis zonų asociacijomis. Ši funkcija leidžia labiau kontroliuoti duomenų vietovę ir yra naudinga atitikties ar geografinio paskirstymo reikalavimams. Zonoms priskiriami „Shard“ raktų verčių diapazonai ir jungiamos su skydais, kad būtų galima išsamiau kontroliuoti duomenų išdėstymą.

Apribojimai ir veiklos sumetimai apima kelių skiautelių valdymo sudėtingumą ir padidėjusį veiklos pridėtines išlaidas. Tinklo latentis tarp komponentų ir pridėtinės prievartos „Config Server“ metaduomenų ir maršrutizacijos palaikymo išlaidų gali paveikti našumą, jei nebus tinkamai valdoma. Norint išvengti veiklos blogėjimo, būtina diegti kelis mongo maršrutizatorius ir konfigūracijos serverius bei stebėti jų sveikatą. Mongos atvejų skaičius turėtų būti subalansuotas, nes per dideli mongos egzemplioriai gali sukelti dažnas ryšys su konfigūracijos serveriais ir galimas poveikis klasterio našumui.

Kai kurios ribos taikomos priglobtose ar valdomose „MongoDB“ klasterių, tokių kaip „Azure Cosmos DB“, versijos „MongoDB“ API, įskaitant „Shard“ skaičių, saugyklą ir išteklių ribas vienam skiautrui ar klasteriui. Šios konkrečios platformos ribos skiriasi ir gali būti didesnės, naudojant aukščiausios kokybės pakopas.

Apskritai, „MongoDB“ sukrėtimo klasteriai suteikia patikimą pagrindą modernių programų masteliui su dideliais, augančiais duomenų rinkiniais, skaidriai paskirstydami duomenis ir operacijas per kelis mazgus, užtikrinant našumą, toleranciją gedimams ir mastelio keitimą per intelektualųjį duomenų skaidymą ir replikos nustatymo diegimą.