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.

Oppsummer dette innlegget med: