Le meilleur didacticiel MongoDB tranche en 2024, dans ce didacticiel, vous pouvez apprendre tranches,Pourquoi tranche,MongoDB tranche,Des exemples de fragmentation,
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.
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:
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
instance mongod, stocke l'ensemble ClusterMetadata, y compris les informations de morceau.
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.
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 frfr [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 } frfrfr 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