MongoDB Sharding: trinnvis veiledning med eksempel

Innholdsfortegnelse:

Anonim

Hva er Sharding i MongoDB?

Sharding er et konsept i MongoDB, som deler store datasett i små datasett på tvers av flere MongoDB-forekomster.

Noen ganger vil dataene i MongoDB være så enorme at spørsmål mot slike store datasett kan forårsake mye CPU-bruk på serveren. For å takle denne situasjonen har MongoDB et konsept med Sharding, som i utgangspunktet er splitting av datasett over flere MongoDB-forekomster.

Samlingen som kan være stor i størrelse er faktisk delt over flere samlinger eller Shards som de kalles. Logisk sett fungerer alle skjærene som en samling.

Hvordan implementere Sharding

Shards implementeres ved hjelp av klynger som ikke er annet enn en gruppe MongoDB-forekomster.

Komponentene til en Shard inkluderer

  1. A Shard - Dette er den grunnleggende tingen, og dette er ingenting annet enn en MongoDB-forekomst som inneholder delmengden av dataene. I produksjonsmiljøer må alle skjær være en del av replikasett.
  2. Config-server - Dette er en mongodb-forekomst som inneholder metadata om klyngen, i utgangspunktet informasjon om de forskjellige mongodb-forekomster som vil holde skjervdataene.
  3. En ruter - Dette er en Mongodb-forekomst som i utgangspunktet er ansvarlig for å omdirigere kommandoene som sendes av klienten til riktige servere.

Steg for trinn Sharding Cluster Eksempel

Trinn 1) Opprett en egen database for konfigureringsserveren.

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 konfigurasjonsserveren vår, må vi kjøre kommandoen nedenfor for å konfigurere serveren som en konfigurasjonsserver.

mongod -configdb ServerD: 27019

Trinn 3) Start Mongo-forekomsten ved å spesifisere konfigurasjonsserveren

mongos -configdb ServerD: 27019

Trinn 4) Koble til Mongo-instansen fra mongoskallet

mongo -host ServerD -port 27017

Trinn 5) Hvis du har server A og server B som må legges til klyngen, kan du utstede kommandoene nedenfor

sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")

Trinn 6) Aktiver skjæring for databasen. Så hvis vi trenger å skjære Employeedb-databasen, kan du utstede kommandoen nedenfor

sh.enableSharding(Employeedb)

Trinn 7) Aktiver skjæring for samlingen. Så hvis vi trenger å skjære ansattesamlingen, kan du utstede kommandoen nedenfor

Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})

Sammendrag:

  • Som forklart i opplæringen, er Sharding et konsept i MongoDB, som deler store datasett i små datasett på tvers av flere MongoDB-forekomster.