Najlepszy samouczek MongoDB slice W 2024 r. W tym samouczku możesz dowiedzieć się plastry,Dlaczego slice,MongoDB slice,Przykłady fragmentacji,
Jest jeszcze jeden klaster MongoDB wewnątrz, krojenie technologii, duża ilość danych, aby sprostać rosnącemu zapotrzebowaniu na MongoDB.
Gdy MongoDB do przechowywania dużej ilości danych, maszyna może być niewystarczająca do przechowywania danych, może być niewystarczająca, aby zapewnić akceptowalną wydajność odczytu i zapisu. W tym momencie możemy podzielić dane na wielu komputerach, tak aby system bazy danych może przechowywać i przetwarzać więcej danych.
Poniższy rysunek przedstawia wykorzystanie struktury klastra plaster w dystrybucji MongoDB:
Powyższy obraz ma następujące trzy główne elementy:
Służy do przechowywania rzeczywisty blok danych, rzeczywistego środowiska produkcyjnego, rola serwera odłamek może ustawić kilka maszyn relica ustawić zobowiązanie do zapobiegania hosta pojedynczy punkt awarii
mongod instancji, przechowuje całą ClusterMetadata, w tym informacje kawałku.
Przedni koniec trasy, przy czym dostęp do klienta, a cała gromada wyglądać jednej bazie danych aplikacji front-end może przejrzysty używają.
Porty tkaniny slice są dystrybuowane w następujący sposób:
Shard Server 1:27020 Shard Server 2:27021 Shard Server 3:27022 Shard Server 4:27023 Config Server :27100 Route Process:40000
Krok pierwszy: Początek Shard Server
[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 plpl [root@100 /]# /usr/local/mongoDB/bin/mongod --port 27023 --dbpath=/www/mongoDB/shard/s3 --logpath=/www/mongoDB/shard/log/s3.log --logappend --fork
Krok drugi: Uruchom Server 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
Uwaga: W tym miejscu możemy rozpocząć jak zwykłe usługi MongoDB jako początek, nie trzeba dodawać parametry -shardsvr i configsvr. Ponieważ rola tych dwóch parametrów jest zmiana portu startowego, więc możemy być self-wyznaczonego portu.
Krok trzeci: Rozpoczęcie procesu trasy
/usr/local/mongoDB/bin/mongos --port 40000 --configdb localhost:27100 --fork --logpath=/www/mongoDB/shard/log/route.log --chunkSize 500
Parametry startowe Mongos, chunkSize ten jest wykorzystywany do określenia wielkości fragmentu, jednostka jest MB, wielkość domyślna to 200MB.
Krok czwarty: Skonfiguruj Sharding
Następnie używamy MongoDB Shell Zaloguj się do Mongos, dodawać węzły 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 } plplpl 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 }
Krok piąty: W kodzie programu bez większych zmian, bezpośrednie połączenie zgodnie ze zwykłą bazie Mongo jako interfejs dostępu do bazy danych, aby połączyć 40.000