mongodb的分布式叢集(3、分區),mongodb叢集

來源:互聯網
上載者:User

mongodb的分布式叢集(3、分區),mongodb叢集
概述

       上面兩篇部落格都是關於mongodb的叢集的配置,沒有涉及到分布式,該片部落格就是寫mongodb的分布式,把一個整體,分成多個片,每個片部署到不同的伺服器上,這個就是mongodb的分布式,即:mongodb的分區操作。


部署圖        

       mongos伺服器做的是路由伺服器,config伺服器就是儲存相應配置的伺服器,shard1和shard2就是分區伺服器,這兩個伺服器合在一起才是一個整體,而mongos伺服器就是他們的和點,所以,我們用戶端只需要和mongos伺服器互動就可以了,後面的,伺服器自己會將相應的資訊存放到不同的片伺服器上。


分區配置

    //啟動shard伺服器    mongod --dbpath C:\Mongodb\data\shard1    mongod --dbpath C:\Mongodb\data\shard2    //啟動config伺服器    mongod --dbpath C:\Mongodb\data\config --port 27017    //啟動mongos伺服器(chunkSize:當分區插入大於1M時,開始進行資料轉移,預設200MB)    mongos --port 27017 --configdb 192.168.24.125:27017 --chunkSize 1    //登入mongos伺服器,添加shard伺服器(allowLocal允許本地部署多個分區,預設不允許)    use admin    db.runCommand({addshard : "192.168.24.42:27017", allowLocal : true})    db.runCommand({addshard : "192.168.24.252:27017", allowLocal : true})    //登入mongos伺服器,開啟資料庫分區功能,並指定集合的分區片鍵    db.runCommand({enablesharding : "DBName"})    db.runCommand({shardcollection:"DBName.CName",key:{fieldName:1}})      //數字代表排序
       這裡需要注意,一定要指定集合的分區的片鍵,這個鍵就是將這個整體分成部分的關鍵。此時我們可以做一些測試操作,登入mongos伺服器,輸入相應的測試資料,然後,分別登上不同的片伺服器,看看裡面的內容,你就明白了。測試資料等其他方面的命令如下

    for(var i=0;i<100000;i++){ db.perons.insert({id:i, name:"qingshan"+i})}//測試資料片節點操作     //移除非主分區,第一次轉移資料,第二次刪    db.runCommand({"removeshard" : "192.168.24.42:27017"});    db.runCommand({"removeshard" : "192.168.24.42:27017"});     //添加分區(須先刪除資料庫)    db.runCommand({addshard : "192.168.24.42:27017", allowLocal : true})     //移除主分區,第一次設定主分區,第二次刪    db.runCommand({"moveprimary" : "192.168.24.42:27017"});    db.runCommand({"removeshard" : "192.168.24.252:27017"});    db.runCommand({listshards:1})   //分區資訊    db.printShardingStatus()        //分區狀態    use config    db.shards.find()                //分區伺服器資訊    db.chunks.find()                //分區資訊

分區的優缺點       優點              分布式解決的問題,就是資料太多時,一台伺服器不能儲存那麼多資料的問題,當然,向負載平衡等方面的功能,也是有的。       缺點              從上面的部署圖我們可以看出,一旦路由伺服器出現問題,那就完蛋了,同樣,一旦某一個片服務出現問題,那麼就會出現資料的不完整性,即缺失資料的問題。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.