sql >> Database teknologi >  >> NoSQL >> MongoDB

er dette den optimale minimumsopsætning for mongodb for at tillade sharding/skalering?

Et replikasæt er et sæt computere, der er kloner af hinanden. (dvs.:replikaer ) Inden for et givet sæt er der en valgt mester. Som standard går læsninger og skrivninger til denne valgte mester, og replikaerne "hale" blot ændringerne til at være opdaterede kopier. Hvis masteren fejler, vælges en ny, og systemet fortsætter bare. Dokumentationen er her .

Så du spørger om skalering med MongoDB. Der er to typer skalering:

  • Læs Skalering:brug replikasæt (se her )
  • Skriveskalering:brug Sharding

Minimumskonfigurationen for replikasæt er - 2 hele replikaer - 1 arbiter (letvægtsproces, bryder båndene ved afstemning)

Minimumskonfigurationen for Sharding er-1 config-server-1 mongod proces (kun ét shard) - 1 eller flere mongoer (generelt på app-server)

Men du har nok ikke lyst til at køre sådan i produktionen. At køre kun en enkelt DB betyder, at du kun har én kilde til dataene, hvilket kan resultere i store nedetider eller totalt datatab. Dette løses generelt ved at bruge replikasæt.

Derudover er konfigurationsserveren ret vigtig. MongoDB understøtter 1 eller 3 konfigurationsservere. De fleste produktionsimplementeringer bruger 3. Bemærk, at konfigurationsservere og arbitere er meget lette og kan leve på andre bokse eller på Amazons mikroinstanser.

De fleste produktionsinstallationer med sharding involverer også replikasæt. Faktisk starter de normalt som replikasæt.

Fra et skæringsperspektiv skal det være så let som:- start ny shard-server- kør addshard kommando fra en mongos

Bemærk, at når du tilføjer et shard, skal du tage højde for tid og ressourcer, efterhånden som data migrerer mellem shards og alt re-balancerer.




  1. Hvordan opdaterer du flere felter ved hjælp af Update.Set i MongoDB ved hjælp af den officielle c#-driver?

  2. Indstil MongoDB-databasekvote (SIZE)

  3. Mongo, find gennem listen over id'er

  4. Klassen 'Jenssegers\Mongodb\MongodbServiceProvider' blev ikke fundet