English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sharding MongoDB

Sharding é o processo de armazenamento de registros de dados em múltiplos computadores, é o método que o MongoDB utiliza para atender às necessidades de crescimento de dados. Com o aumento do tamanho dos dados, um único computador pode não ser suficiente para armazenar dados e também não pode fornecer uma taxa de leitura e escrita aceitável. O sharding resolve o problema de escalabilidade horizontal. Através do sharding, você pode adicionar mais computadores para atender às necessidades de crescimento de dados e operações de leitura e escrita.

Por que shardar?

  • Em cópias, todos os escritas são direcionadas para o nó principal

  • As consultas sensíveis a atraso continuam a ser direcionadas para o nó principal

  • O limite de um único conjunto de cópias é12um nó

  • Quando o conjunto de dados de atividades é muito grande, a memória não pode ser suficientemente grande

  • O disco local não é suficientemente grande

  • A扩展示例过于昂贵

Sharding no MongoDB

A figura a seguir mostra shards no MongoDB usando o cluster de shards.

Na figura a seguir, há três componentes principais-

  • Shards−Shards são usados para armazenar dados. Eles oferecem alta disponibilidade e consistência de dados. Em ambientes de produção, cada shard é um conjunto de replicação separado.

  • Servidores de Configuração−Os servidores de configuração armazenam metadados do cluster. Esses dados contêm mapeamento de conjuntos de dados do cluster para shards. O roteador de consulta usa esses metadados para direcionar operações para shards específicos. Em ambientes de produção, o cluster de shards tem exatamente3Configuração de servidores.

  • Roteadores de Consulta−O roteador de consulta basicamente é uma instância mongo, que pode se conectar ao aplicativo cliente e direcionar operações diretamente para o shard apropriado. O roteador de consulta processa operações, localiza shards e retorna os resultados ao cliente. O cluster de shards pode conter vários roteadores de consulta para dividir a carga de solicitações do cliente. O cliente envia solicitações para um roteador de consulta. Normalmente, o cluster de shards possui muitos roteadores de consulta.