Latest web development tutorials

MongoDB tranche

tranches

Il y a un autre cluster MongoDB au sein, le tranchage de la technologie, une grande quantité de données pour répondre à la demande croissante de MongoDB.

Lorsque MongoDB pour stocker de grandes quantités de données, une machine peut être insuffisante pour stocker les données, peut être insuffisante pour fournir une lecture acceptable et écrire le débit. À ce stade, nous pouvons diviser les données sur plusieurs machines, de sorte que le système de base de données peut stocker et traiter plus de données.


Pourquoi tranche

  • Copiez toutes les opérations d'écriture sur le nœud principal
  • Retarder les données sensibles dans la requête principale
  • Un ensemble de copie unique est limitée à 12 nœuds
  • Lorsque l'énorme volume de demandes apparaît lorsque la mémoire.
  • Local pénurie de disque
  • l'expansion verticale est coûteuse

MongoDB tranche

La figure suivante montre l'utilisation de la structure de cluster tranche dans la distribution MongoDB:

L'image ci-dessus présente les trois principaux éléments suivants:

  • Shard:

    Utilisé pour stocker le bloc de données réelles, l'environnement de production réel, un rôle de serveur de tesson peut définir quelques machines Relica a établi un engagement pour empêcher l'hôte point de défaillance unique

  • Config serveur:

    instance mongod, stocke l'ensemble ClusterMetadata, y compris les informations de morceau.

  • Rechercher Routeurs:

    L'extrémité avant de la route, de sorte que l'accès au client, et l'ensemble du cluster ressemblent à une seule base de données des applications front-end peut utiliser de manière transparente.


Des exemples de fragmentation

ports de tissu Slice sont répartis comme suit:

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

Première étape: Démarrer Shard serveur

[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

Deuxième étape: Démarrer le serveur Config

[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

Note: Ici , nous pouvons commencer comme le service de mongodb ordinaire comme début, pas besoin d'ajouter des paramètres -shardsvr et configsvr. Parce que le rôle de ces deux paramètres est de changer le port de départ, de sorte que nous pouvons être le port d'auto-désigné.

Troisième étape: démarrer le processus de Route

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

paramètres de démarrage Mongos, chunkSize celui-ci est utilisé pour spécifier la taille du morceau, l'unité est Mo, la taille par défaut est 200Mo.

Quatrième étape: Configurer Sharding

Ensuite, nous utilisons MongoDB Shell Connectez-vous à mongos, ajouter des nœuds 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 }

Cinquième étape: Dans le code de programme sans grand changement, une connexion directe conformément à la base de données de mongo ordinaire comme l'interface d'accès de base de données pour se connecter 40000