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

  1. 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.
  2. 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.
  3. 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.