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

è questa la configurazione minima ottimale per mongodb per consentire lo sharding/il ridimensionamento?

Un set di repliche è un insieme di computer che sono cloni l'uno dell'altro. (ovvero:repliche ) All'interno di un dato set c'è un maestro eletto. Per impostazione predefinita, le letture e le scritture vanno a questo master eletto e le repliche "codificano" semplicemente le modifiche per essere copie aggiornate. Se il master fallisce, ne viene eletto uno nuovo e il sistema va avanti. La documentazione è qui .

Quindi chiedi informazioni sul ridimensionamento con MongoDB. Esistono due tipi di ridimensionamento:

  • Leggi il ridimensionamento:usa i set di repliche (vedi qui )
  • Ridimensionamento in scrittura:usa Sharding

La configurazione minima per i set di repliche è:2 repliche complete:1 arbitro (processo leggero, rompe i pareggi durante il voto)

La configurazione minima per Sharding è:1 server di configurazione:1 mongod process (solo uno shard)- 1 o più mongos (generalmente sul server dell'app)

Tuttavia, probabilmente non si desidera eseguire in questo modo in produzione. L'esecuzione di un solo DB significa che si dispone di un'unica fonte per i dati che può comportare grandi tempi di inattività o la perdita totale di dati. Questo problema viene generalmente risolto utilizzando set di repliche.

Inoltre, il server di configurazione è piuttosto importante. MongoDB supporta 1 o 3 server di configurazione. La maggior parte delle distribuzioni di produzione utilizza 3. Tieni presente che i server di configurazione e gli arbitri sono molto leggeri e possono vivere su altre scatole o su micro istanze Amazon.

La maggior parte delle distribuzioni di produzione con partizionamento orizzontale coinvolge anche i set di repliche. In effetti, di solito iniziano come set di repliche.

Dal punto di vista del partizionamento orizzontale, dovrebbe essere facile come:- avviare un nuovo server shard- eseguire addshard comando da un mongos

Tieni presente che quando aggiungi uno shard, dovrai dedicare tempo e risorse mentre i dati migrano tra gli shard e tutto viene ribilanciato.