MongoDB Sharded Clusters: Átfogó útmutató
A MongoDB felosztása egy hatékony technika az adatok vízszintes skálázására és több szerver vagy "szilánkok" közötti elosztására. Ez a megközelítés lehetővé teszi a MongoDB számára, hogy kezelje a növekvő terheléseket és javítsa a teljesítményt azáltal, hogy az adatokat kisebb darabokra osztja, és több szilánk között osztja el. A szilánkos fürt összetevőinek megértése alapvető fontosságú az adatbázis-infrastruktúra hatékony kezeléséhez és méretezéséhez.
Egy felosztott fürt összetevői
1. Shards: A szilánkok vízszintesen méretezhetők, lehetővé téve további szilánkok hozzáadását az adatok növekedésével, hogy kezelni tudja a növekvő terhelést. A feldarabolt fürt minden egyes szilánkja egy másik fizikai gépen vagy kiszolgálón helyezkedhet el, így az adatok és a munkaterhelés több csomópont között osztható el. A szilánkok dinamikusan adhatók hozzá egy szilánkos fürthöz, ami lehetővé teszi az adatbázis-infrastruktúra leállás nélküli méretezését.
2. Elsődleges szilánk: Az elsődleges szilánk hozzárendelése az adatbázis létrehozáskori méretén alapul, de szükség esetén később manuálisan is hozzárendelhető. Az elsődleges szilánk felelős az adatbázishoz kapcsolódó metaadatok tárolásáért, például a gyűjtemények listájáért és azok helyéért. Ha egy elsődleges szilánk elérhetetlenné válik, a MongoDB automatikusan kiválaszt egy új elsődleges szilánkot az érintett adatbázisokhoz a folyamatos működés biztosítása érdekében.
3. Config Servers: A konfigurációs kiszolgálók metaadatokat tárolnak a szilánkos fürtről, beleértve a szilánkokra, darabokra és a fürt szervezetére vonatkozó információkat. Megkönnyítik az adminisztratív műveleteket, és segítenek fenntartani a fürt konzisztenciáját azáltal, hogy biztosítják, hogy a fürt összes csomópontja azonos nézetben legyen a metaadatokról. A konfigurációs kiszolgálók kezelik a hitelesítési és engedélyezési beállításokat, biztosítva, hogy csak a jogosult felhasználók és alkalmazások férhessenek hozzá a fürthöz.
4. Mongos példányok: A Mongos példányok interfészként működnek az ügyfélalkalmazások és a szilánkos fürt között. Ők kezelik a lekérdezések útválasztását, a szilánkok kezelését és az eredmények összesítését. A Mongos példányok maguk nem tárolnak adatokat, hanem a konfigurációs kiszolgálók metaadat-gyorsítótárazásától függenek a lekérdezések hatékony irányítása érdekében.
Hogyan működik a megosztás
A feldarabolt fürt létrehozásakor a MongoDB automatikusan darabokra osztja az adatokat, és szétosztja azokat a rendelkezésre álló szilánkok között. Minden csonknak van egy átfogó alsó és kizárólagos felső korlátja, amelyek meghatározzák az egyes szilánkon tárolt shard kulcsértékek tartományát. Ez biztosítja az egyenletes adatelosztást és a hatékony lekérdezések továbbítását.
Lekérdezésoptimalizálás egy felosztott fürtben
A lekérdezések optimalizálása kulcsfontosságú a hatékony adatlekéréshez és a lekérdezési teljesítményhez egy szilánkos fürtben. A MongoDB eszközöket és parancsokat biztosít az elsődleges szilánkok kezelésére, például az `sh.status()' parancsot, amellyel megtekinthető a szilánkok állapota egy szilánkos fürtben. Ezenkívül a MongoDB támogatja a szilánkos aggregációs lekérdezéseket, lehetővé téve összetett adatösszesítések végrehajtását több szilánkon keresztül.
Darabok felosztása
A darabok felosztása lehetővé teszi az adatelosztás finomhangolását a MongoDB szilánkos fürtben. A darabok kifejezett felosztásával szabályozhatja az egyes darabokon tárolt shard kulcsértékek tartományát, és biztosíthatja az egyenletes adatelosztást. Ennek során meg kell határozni azt az értéket, amelynél fel szeretné osztani a darabot, és a `sh.splitAt()' paranccsal fel kell osztani a darabot a kívánt felosztási ponton.
Az elosztott fürtök legjobb gyakorlatai
1. A konfigurációs kiszolgálók telepítése 3 tagú replikakészletként: Győződjön meg arról, hogy a konfigurációs kiszolgálók 3 tagú replikakészletként kerülnek telepítésre a magas rendelkezésre állás és a hibatűrés érdekében.
2. Minden szilánk telepítése 3 tagú replikakészletként: Győződjön meg arról, hogy minden szilánk 3 tagú replikakészletként kerül telepítésre a magas rendelkezésre állás és a hibatűrés érdekében.
3. Egy vagy több mongos útválasztó üzembe helyezése: Telepítsen egy vagy több mongos útválasztót a lekérdezés-útválasztás és a szilánkkezelés kezelésére.
4. Teljesítmény figyelése: Az optimális teljesítmény és adatelosztás biztosítása érdekében figyelemmel kísérheti a szilánkos fürt teljesítményét, beleértve a konfigurációs kiszolgálók és a szilánkok teljesítményét is.
5. Osztott összesítő lekérdezések használata: Használjon feldarabolt összesítő lekérdezéseket összetett adatösszesítések végrehajtására több szilánkon keresztül, így biztosítva a hatékony adatfeldolgozást és -elemzést.
Következtetés
A MongoDB felosztása egy hatékony technika az adatok vízszintes skálázására és több szerveren vagy "szilánkok" közötti elosztására. A feldarabolt fürt összetevőinek és a felosztás működésének megértése alapvető fontosságú az adatbázis-infrastruktúra hatékony kezeléséhez és méretezéséhez. A bevált módszerek követésével és a lekérdezések optimalizálásával optimális teljesítményt és adatelosztást biztosíthat a szilánkos fürtben.
Idézetek:[1] https://www.mongodb.com/docs/manual/core/sharded-cluster-components/
[2] https://www.mongodb.com/docs/v6.2/core/sharded-cluster-components/
[3] https://www.geeksforgeeks.org/sharded-cluster-components-in-mongodb/
[4] https://www.squash.io/tutorial-on-database-sharding-in-mongodb/
[5] https://www.bmc.com/blogs/mongodb-sharding-explained/