Latest web development tutorials

fatia MongoDB

Slices

Há um outro conjunto MongoDB dentro, cortando tecnologia, uma grande quantidade de dados para atender a crescente demanda por MongoDB.

Quando MongoDB para armazenar grandes quantidades de dados, uma máquina pode ser insuficiente para armazenar os dados, pode ser insuficiente para fornecer uma leitura aceitável e escrever rendimento. Neste ponto, pode-se dividir os dados em várias máquinas, de modo que o sistema de base de dados pode armazenar e processar mais dados.


Por slice

  • Copiar tudo escrever operações para o nó primário
  • Atrasar dados sensíveis na query master
  • Um único conjunto de cópias está limitado a 12 nós
  • Quando o enorme volume de pedidos aparece quando a memória.
  • escassez de disco local
  • expansão vertical é caro

fatia MongoDB

A figura a seguir mostra o uso da fatia estrutura de cluster na distribuição MongoDB:

A imagem acima tem três componentes principais:

  • Shard:

    Usado para armazenar o bloco de dados real, o ambiente real de produção, uma função de servidor fragmento pode definir algumas máquinas Relica definir um compromisso para evitar o ponto único host de falha

  • Configuração do servidor:

    instância mongod, armazena toda a ClusterMetadata, incluindo as informações pedaço.

  • Consulta Routers:

    A extremidade dianteira do percurso, pelo que o acesso do cliente, e todo o aglomerado parecido com um banco de dados único aplicações front-end pode transparente usar.


Exemplos de fragmentação

portas de tecido fatia são distribuídos da seguinte forma:

Shard Server 1:27020
Shard Server 2:27021
Shard Server 3:27022
Shard Server 4:27023
Config Server :27100
Route Process:40000

Passo um: Iniciar Shard Servidor

[root@100 /]# mkdir -p /www/mongoDB/shard/s0
[root@100 /]# mkdir -p /www/mongoDB/shard/s1
[root@100 /]# mkdir -p /www/mongoDB/shard/s2
[root@100 /]# mkdir -p /www/mongoDB/shard/s3
[root@100 /]# mkdir -p /www/mongoDB/shard/log
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27020 --dbpath=/www/mongoDB/shard/s0 --logpath=/www/mongoDB/shard/log/s0.log --logappend --fork
....
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27023 --dbpath=/www/mongoDB/shard/s3 --logpath=/www/mongoDB/shard/log/s3.log --logappend --fork

Segundo Passo: Comece o servidor de configuração

[root@100 /]# mkdir -p /www/mongoDB/shard/config
[root@100 /]# /usr/local/mongoDB/bin/mongod --port 27100 --dbpath=/www/mongoDB/shard/config --logpath=/www/mongoDB/shard/log/config.log --logappend --fork

Nota: Aqui podemos começar como serviço MongoDB comum como começar, não há necessidade de adicionar parâmetros -shardsvr e configsvr. Porque o papel desses dois parâmetros é mudar a porta inicial, para que possamos ser a porta de auto-designado.

Terceiro Passo: Comece a rota de processo

/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/www/mongoDB/shard/log/route.log --chunkSize 500

parâmetros de inicialização Mongos, chunkSize este é usado para especificar o tamanho do pedaço, a unidade é MB, o tamanho padrão é de 200 MB.

Passo Quatro: Configurar Sharding

Em seguida, usamos MongoDB Shell Inicie a sessão no mongos, adicionar nós Shard

[root@100 shard]# /usr/local/mongoDB/bin/mongo admin --port 40000
MongoDB shell version: 2.0.7
connecting to: 127.0.0.1:40000/admin
mongos> db.runCommand({ addshard:"localhost:27020" })
{ "shardAdded" : "shard0000", "ok" : 1 }
......
mongos> db.runCommand({ addshard:"localhost:27029" })
{ "shardAdded" : "shard0009", "ok" : 1 }
mongos> db.runCommand({ enablesharding:"test" }) #设置分片存储的数据库
{ "ok" : 1 }
mongos> db.runCommand({ shardcollection: "test.log", key: { id:1,time:1}})
{ "collectionsharded" : "test.log", "ok" : 1 }

Quinto passo: No código de programa sem muita mudança, uma ligação directa de acordo com o banco de dados mongo comum como a interface de acesso de banco de dados para conectar 40.000