Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Sharded kopas Mongodbā


Sharded kopas Mongodbā


MongoDB sharded kopas nodrošina jaudīgu metodi horizontāli lielo datu kopu mērogošanai, sadalot datus vairākos serveros vai šķembās, ļaujot datu bāzei efektīvi apstrādāt lielu caurlaides spēju un lielu datu daudzumu.

MongoDB sharded klasteris galvenokārt sastāv no trim galvenajām sastāvdaļām: shēmas, konfigurācijas serveri un Mongos maršrutētāji. Katrs shard ir kopijas kopa, kas satur klastera datu apakškopu. Replica kopas nodrošina datu atlaišanu un augstu datu pieejamību katrā shard. Config Serveru glabā metadatus un konfigurācijas informāciju par klasteru, ieskaitot datu gabalu kartēšanu līdz šķembām. Mongos darbojas kā maršrutēšanas pakalpojums, kas saskaras ar klientu lietojumprogrammām un norāda vaicājumus uz atbilstošām šķembām, pamatojoties uz shard taustiņu.

Sharding in MongoDB ir paredzēts, lai nodrošinātu horizontālu mērogošanu, sadalot datus pāri šķembām, izmantojot izvēlēto shard taustiņu. Šī sadalīšana rada datu gabalus, kas vienmērīgi sadalīti starp šķembām, ļaujot MongoDB izplatīt lasījumu un rakstu slodzi. Vaicājumus, kas ietver Shard atslēgu vai salikta Shard atslēgas prefiksus, var efektīvi novirzīt Mongos uz īpašām šķembām, samazinot vaicājuma pieskaitīšanu un uzlabojot veiktspēju. Ja vaicājumā nav iekļauts Shard atslēga, Mongos var pārraidīt vaicājumu visām šarnām, kas ir mazāk efektīvas.

Šķīles klasterī ir mērogojamas; Papildu šķembas var pievienot dinamiski, lai pielāgotos datu apjoma vai vaicājuma slodzes pieaugumam bez dīkstāves. Katrs shard ir kopijas komplekts, lai nodrošinātu kļūmes toleranci, un kopējais klasteru dizains atbalsta augstu pieejamību. MongoDB automātiski līdzsvaro datus dažādās šķembās, pārdalot datu gabaliņus pēc nepieciešamības, lai saglabātu vienmērīgu darba slodzi starp šķembām.

Konfigurēšanas serveriem ir kritiska loma klastera metadatu pārvaldībā, informācijas par klastera struktūru un datu izplatīšanas saglabāšanu. Konfigurācijas serveri jāizvieto kā kopijas kopa augstai pieejamībai. Viņi sinhronizējas ar Mongos maršrutētājiem, kurus vietējā mērogā kešatmiņas metadati, lai efektīvi novirzītu vaicājumus. Konsekvents metadatu stāvoklis konfigurācijas serveros ir būtisks, lai pareizi darbotos ar sharded kopu.

Mongos gadījumi darbojas kā vaicājumu maršrutētāji, kas nodrošina interfeisa slāni starp klientu lietojumprogrammām un sharded kopu. Tie abstraktu apkopotās vides sarežģītību, maršrutējot operācijas uz pareizajām šķembām, pamatojoties uz metadatiem no konfigurācijas serveriem. Lai samazinātu tīkla latentumu, var izvietot vairākus Mongos gadījumus, lai samazinātu slodzes līdzsvarošanu un augstu pieejamību, un tie jānovieto tuvu lietojumprogrammu serveriem.

Izšķirošais shardētu kopu aspekts ir Shard atslēgas izvēle. Shard atslēga nosaka to, kā dati tiek sadalīti, tieši ietekmējot klastera veiktspēju un datu izplatīšanu. Lai izvēlētos atbilstošu shard taustiņu, ir jāanalizē darba slodze, lai nodrošinātu vienmērīgu lasīšanas un rakstīšanas operāciju sadalījumu visās šķembās. Kad ir izveidota apvalka kolekcija ar noteiktu shard taustiņu, Shard atslēgas maiņa ir sarežģīta un parasti ietver laikietilpīgu datu migrācijas procesu. Tādējādi svarīga ir rūpīga shard taustiņu izvēle.

Ražošanas vidē laba prakse Sharded kopām ietver konfigurācijas serveru un šķembu izvietošanu kā kopijas vairākos datu centros, lai nodrošinātu kļūdu toleranci un augstu pieejamību. Katrai shard ir ieteicams būt trīs mezglu kopijas komplektam. Kopām ir vajadzīgas vismaz divas šķembas, lai gan, ja nākotnē ir plānota, var izmantot vienreizējas apvalka kopas.

Sharding uzlabo datu bāzes ietilpību, palielinot uzglabāšanas ierobežojumus, izmantojot sadalīto datu glabāšanu visās šķembās. Tas arī uzlabo sniegumu, izplatot lasījumus un rakstot, kas ļauj apstrādāt lielāku caurlaides slodzi. Turklāt Sharded klasteris var saglabāt daļēju pieejamību ShARD pārtraukumu laikā; Kaut arī dati par skartajām šķembām var būt nepieejami, klasteris turpina apkalpot pieprasījumus pēc pieejamajām Šards.

Apstiprinātā klasterī dati tiek sadalīti gabalos diapazonā, ko nosaka shard taustiņš. MongoDB konfigurē riecienu izmērus, kas ietekmē to, kā dati tiek sadalīti un līdzsvaroti visās šķembās. Rieciena migrācijas un līdzsvarošanas procesus klasteris automātiski apstrādā, lai saglabātu vienmērīgu datu sadalījumu un optimālu veiktspēju. Šī automātiskā balansēšana nodrošina, ka neviens novietots nekļūst par veiktspējas sašaurinājumu vai uzglabāšanas karsto punktu.

Sharded kopas atbalsta arī zonas (ar tagu izpratni), ļaujot datus sagrupēt un ierobežot ar konkrētām šķembām, pamatojoties uz zonu asociācijām. Šī funkcija ļauj iegūt kontrolētāku datu atrašanās vietu un ir noderīga atbilstības vai ģeogrāfiskās izplatīšanas prasībām. Zonām ir piešķirti shard taustiņu vērtību diapazoni, un tas ir saistīts ar šķembām, lai detalizētu datu izvietojumu.

Ierobežojumi un darbības apsvērumi ietver vairāku šķembu pārvaldīšanas sarežģītību un palielinātas operatīvās pieskaitāmās izmaksas. Tīkla latentums starp komponentiem un konfigurācijas servera metadatu uzturēšanas un maršrutēšanas pieskaitāmās izmaksas var ietekmēt veiktspēju, ja tā netiek pareizi pārvaldīta. Lai izvairītos no veiktspējas degradācijas, ir svarīgi izvietot vairākus Mongos maršrutētājus un konfigurācijas serverus un viņu veselības uzraudzību. Mongos gadījumu skaitam jābūt līdzsvarotam, jo ​​pārmērīgi Mongos gadījumi var izraisīt biežu saziņu ar konfigurācijas serveriem un iespējamo ietekmi uz klastera veiktspēju.

Daži ierobežojumi attiecas uz mitinātām vai pārvaldītām MongoDB shardētu kopu versijām, piemēram, Azure Cosmos DB MongoDB API, ieskaitot Shard Counts, uzglabāšanas un resursu ierobežojumus uz vienu shard vai kopu. Šīs platformas specifiskās robežas atšķiras un var būt augstākas ar augstākās kvalitātes līmeņiem.

Kopumā MongoDB sharded kopas nodrošina stabilu pamatu modernu lietojumprogrammu mērogošanai ar lielām, augošām datu kopām, izplatot datus un operācijas caurspīdīgi vairākos mezglos, nodrošinot veiktspēju, kļūmju toleranci un mērogojamību, izmantojot inteliģentu datu sadalīšanu un replikas iestatīšanu.