MongoDB Sharding: Vodič korak po korak s primjerom
U čemu je Sharding MongoDB?
Sharding je koncept u MongoDB, koji dijeli velike skupove podataka u male skupove podataka na više MongoDB instanci.
Ponekad podaci unutar MongoDB će biti tako golemi da upiti prema tako velikim skupovima podataka mogu uzrokovati veliko korištenje CPU-a na poslužitelju. Kako bismo riješili ovu situaciju, MongoDB ima koncept dijeljenja, što je u osnovi dijeljenje skupova podataka na više MongoDB instanci.
Zbirka koja bi mogla biti velika zapravo je podijeljena na više kolekcija ili Shardova, kako se nazivaju. Logično, sve krhotine rade kao jedna zbirka.
Kako implementirati Sharding
Krhotine se implementiraju korištenjem klastera koji nisu ništa drugo nego skupina MongoDB instanci.
Komponente Sharda uključuju
- Krhotina – Ovo je osnovna stvar, a ovo nije ništa drugo nego a MongoDB instanca koja sadrži podskup podataka. U proizvodnim okruženjima svi fragmenti moraju biti dio skupova replika.
- Konfiguracijski poslužitelj – Ovo je mongodb instanca koja sadrži metapodatke o klasteru, u osnovi informacije o različitim mongodb instancama koje će sadržavati shard podatke.
- Usmjerivač – Ovo je mongodb instanca koja je u osnovi odgovorna za preusmjeravanje naredbi koje šalje klijent pravim poslužiteljima.
Korak po korak dijeljenje Cluster Primjer
Korak 1) Stvorite zasebnu bazu podataka za konfiguracijski poslužitelj.
mkdir /data/configdb
Korak 2) Pokrenite mongodb instancu u načinu konfiguracije. Pretpostavimo da imamo poslužitelj pod nazivom Server D koji bi bio naš konfiguracijski poslužitelj, morali bismo pokrenuti donju naredbu da konfiguriramo poslužitelj kao konfiguracijski poslužitelj.
mongod –configdb ServerD: 27019
Korak 3) Pokrenite mongos instancu navodeći konfiguracijski poslužitelj
mongos –configdb ServerD: 27019
Korak 4) Iz mongo shell-a povežite se na mongo-ovu instancu
mongo –host ServerD –port 27017
Korak 5) Ako imate poslužitelj A i poslužitelj B koje je potrebno dodati u klaster, izdajte naredbe u nastavku
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
Korak 6) Omogući dijeljenje za bazu podataka. Dakle, ako trebamo podijeliti Employeedb bazu podataka, izdajte naredbu u nastavku
sh.enableSharding(Employeedb)
Korak 7) Omogući dijeljenje za kolekciju. Dakle, ako trebamo podijeliti kolekciju Employee, izdajte naredbu u nastavku
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Sažetak:
- Kao što je objašnjeno u udžbenik, Sharding je koncept u MongoDB, koji dijeli velike skupove podataka u male skupove podataka na više MongoDB instanci.