Latest web development tutorials

rebanada MongoDB

rebanadas

Hay otro grupo de MongoDB dentro, cortando la tecnología, una gran cantidad de datos para satisfacer la creciente demanda de MongoDB.

Cuando MongoDB para almacenar grandes cantidades de datos, una máquina puede ser insuficiente para almacenar los datos, puede ser insuficiente para proporcionar una lectura aceptable y escribir rendimiento. En este punto, podemos dividir los datos en varios equipos, por lo que el sistema de base de datos puede almacenar y procesar más datos.


¿Por qué rebanada

  • Copiar todas las operaciones de escritura al nodo principal
  • Retrasar los datos sensibles en la consulta maestra
  • Un conjunto de copia única se limita a 12 nodos
  • ¿Cuándo aparecerá el enorme volumen de solicitudes cuando la memoria.
  • escasez de disco local
  • expansión vertical es caro

rebanada MongoDB

La siguiente figura muestra el uso de la estructura de grupos en la distribución de la rebanada MongoDB:

La imagen de arriba tiene las siguientes tres componentes principales:

  • fragmento:

    Se utiliza para almacenar el bloque de datos reales, el entorno de producción real, una función de servidor fragmento puede establecer algunas máquinas Relica establece un compromiso para evitar el anfitrión único punto de fallo

  • Configuración del servidor:

    mongod ejemplo, almacena toda la ClusterMetadata, incluyendo la porción de información.

  • Los routers de consulta:

    El extremo delantero de la ruta, por lo que el acceso de los clientes, y todo el conjunto se ven como una sola base de aplicaciones front-end puede usar de forma transparente.


Ejemplos de fragmentación

puertos de estructura rebanada se distribuyen de la siguiente manera:

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

Paso: Inicio Fragmento del 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 paso: Iniciar la configuración del servidor

[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: Aquí podemos empezar como servicio mongodb ordinaria, como comienzo, no hay necesidad de añadir parámetros -shardsvr y ConfigSvr. Debido a que el papel de estos dos parámetros es cambiar el puerto de partida, por lo que podemos estar puerto de auto-designado.

Tercer paso: Inicio del proceso de Ruta

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

parámetros de inicio mongos, chunkSize éste se utiliza para especificar el tamaño de la porción, la unidad es MB, el tamaño predeterminado es de 200 MB.

Cuarto paso: Configurar Sharding

A continuación, utilizamos MongoDB Shell sesión en mongo, añadir nodos 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 }

Paso cinco: En el código de programa sin mucho cambio, una conexión directa de acuerdo con la base de datos mongo ordinaria como la interfaz de acceso de base de datos para conectar 40000