MongoDB Sharding: Trinnvis veiledning med eksempel
Hva er Sharding i MongoDB?
Sharding er et konsept i MongoDB, som deler store datasett i små datasett på tvers av flere MongoDB tilfeller.
Noen ganger dataene innenfor MongoDB vil være så stor at forespørsler mot slike store datasett kan forårsake mye CPU-utnyttelse på serveren. For å takle denne situasjonen, MongoDB har et konsept med Sharding, som i utgangspunktet er deling av datasett på tvers av flere MongoDB tilfeller.
Samlingen som kan være stor i størrelse er faktisk delt over flere samlinger eller Shards som de kalles. Logisk sett fungerer alle skårene som én samling.
Hvordan implementere Sharding
Shards implementeres ved å bruke klynger som ikke er annet enn en gruppe av MongoDB tilfeller.
Komponentene til en Shard inkluderer
- En Shard – Dette er det grunnleggende, og dette er ikke annet enn en MongoDB instans som inneholder delsettet av dataene. I produksjonsmiljøer må alle shards være en del av replikasett.
- Konfigurer server – Dette er en mongodb-forekomst som inneholder metadata om klyngen, i utgangspunktet informasjon om de ulike mongodb-forekomstene som vil holde shard-dataene.
- En ruter – Dette er en mongodb-instans som i utgangspunktet er ansvarlig for å omdirigere kommandoene som sendes av klienten til de riktige serverne.
Trinn for trinn skjæring Cluster Eksempel
Trinn 1) Opprett en egen database for konfigurasjonsserveren.
mkdir /data/configdb
Trinn 2) Start mongodb-forekomsten i konfigurasjonsmodus. Anta at hvis vi har en server som heter Server D som vil være vår konfigurasjonsserver, må vi kjøre kommandoen nedenfor for å konfigurere serveren som en konfigurasjonsserver.
mongod –configdb ServerD: 27019
Trinn 3) Start mongos-forekomsten ved å spesifisere konfigurasjonsserveren
mongos –configdb ServerD: 27019
Trinn 4) Fra mongo-skallet kobles til mongoens instans
mongo –host ServerD –port 27017
Trinn 5) Hvis du har Server A og Server B som må legges til klyngen, utfør kommandoene nedenfor
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
Trinn 6) Aktiver deling for databasen. Så hvis vi trenger å sønderdele Employeedb-databasen, utfør kommandoen nedenfor
sh.enableSharding(Employeedb)
Trinn 7) Aktiver deling for samlingen. Så hvis vi trenger å sønderdele ansattsamlingen, gi kommandoen nedenfor
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Sammendrag:
- Som forklart i tutorial, Sharding er et konsept i MongoDB, som deler store datasett i små datasett på tvers av flere MongoDB tilfeller.