Um conjunto de réplicas é um conjunto de computadores que são clones uns dos outros. (ou seja:réplicas ) Dentro de um determinado conjunto há um mestre eleito. Por padrão, as leituras e gravações vão para esse mestre eleito e as réplicas apenas "seguim" as alterações para serem cópias atualizadas. Se o mestre falhar, um novo é eleito e o sistema continua funcionando. A documentação está aqui .
Então você pergunta sobre dimensionamento com o MongoDB. Existem dois tipos de escalonamento:
- Escala de leitura:use conjuntos de réplicas (consulte aqui )
- Escala de gravação:use Fragmentação
A configuração mínima para conjuntos de réplicas é - 2 réplicas completas - 1 árbitro (processo leve, desempate ao votar)
A configuração mínima para Sharding é- 1 servidor de configuração- 1
mongod
processo (apenas um fragmento) - 1 ou mais mongos
(geralmente no servidor de aplicativos) No entanto, você provavelmente não deseja executar assim na produção. Executar apenas um único banco de dados significa que você tem apenas uma fonte para os dados, o que pode resultar em grandes tempos de inatividade ou perda total de dados. Isso geralmente é resolvido usando conjuntos de réplicas.
Além disso, o servidor de configuração é muito importante. MongoDB suporta 1 ou 3 servidores de configuração. A maioria das implantações de produção usa 3. Observe que os servidores de configuração e os árbitros são muito leves e podem residir em outras caixas ou em microinstâncias da Amazon.
A maioria das implantações de produção com fragmentação também envolve conjuntos de réplicas. Na verdade, eles geralmente começam como conjuntos de réplicas.
De uma perspectiva de fragmentação, deveria seja tão fácil quanto:- iniciar um novo servidor de fragmentos - executar o
addshard
comando de um mongos
Observe que, ao adicionar um estilhaço, você precisará permitir tempo e recursos à medida que os dados migram entre os estilhaços e tudo é reequilibrado.