O dimensionamento do banco de dados é um desafio fundamental para o crescimento de aplicativos. Se você iniciar um novo aplicação ou experimentar o crescimento, há duas estratégias principais de dimensionamento:
Dimensionamento vertical – Atualize um único servidor com recursos adicionais.
Dimensionamento horizontal – Distribua o volume de trabalho em vários servidores.
Embora o dimensionamento vertical possa fornecer assistência imediata à alocação de recursos, o dimensionamento horizontal é uma abordagem mais sustentável e flexível quando o dimensionamento é um fator.
À medida que os aplicativos crescem, o dimensionamento do banco de dados tradicional força trocas difíceis entre desempenho, complexidade e custo. MongoDB oferece suporte ao dimensionamento horizontal por meio de sua arquitetura de sharding, que distribui dados e cargas de trabalho em vários servidores conhecidos como shards. Se você estiver construindo para escalar, é crucial considerar a fragmentação proativa para garantir o crescimento contínuo.
A arquitetura de cluster fragmentado do MongoDB oferece várias estratégias para dimensionar seu banco de dados:
Comece cedo com um cluster fragmentado, mesmo com um único shard, para preparar seu aplicação para o futuro.
Mova coleções não fragmentadas entre fragmentos para isolar volumes de trabalho, oferecer suporte a arquiteturas de vários inquilinos, cumprir os requisitos geográficos, otimizar custos e reduzir a densidade das coleções.
Fragmente coleções específicas quando elas se aproximam dos limites de recursos ou ultrapassam 3 TB no tamanho do armazenamento.
Cancele as collections quando os padrões de aplicação mudarem e os benefícios de uma collection fragmentada não superarem mais os custos.
Você pode usar esses recursos de dimensionamento flexíveis para otimizar o desempenho e controlar os custos, mantendo um único ponto de conexão para seus aplicativos.
Estratégias para dimensionamento horizontal
Em um cluster fragmentado, cada shard é um conjunto de réplicas. Vários shards funcionam como parte do mesmo cluster. Seu aplicação acessa todos os recursos de forma transparente conectando-se ao mongos, que lida com a complexidade do roteamento de solicitações para o lugar certo.
Existem dois métodos principais para distribuir volumes de trabalho em um cluster fragmentado:
Movendo coleções para shards dedicados – Atribua collections inteiras a shards específicos, otimizando o desempenho ao distribuir as cargas de trabalho estrategicamente.
Particionamento de uma collection em vários shards – Divida uma única collection em vários shards usando uma chave de shard, distribuindo os dados de forma mais uniforme para a escalabilidade.
Essas abordagens podem ser usadas de forma independente ou combinada, dependendo de seus requisitos.
Começar
- Comece com clusters fragmentados
- Conheça os benefícios de começar com um único fragmento ao criar seu aplicação.
- Gerenciar collections não fragmentadas
- Saiba mais sobre como isolar collections em shards dedicados.
- Distribuir dados de collection
- Saiba mais sobre como fragmentar uma collection.
- Consolidar dados de collection
- Saiba mais sobre como desfragmentar uma collection.