mongodb集羣搭建-分片

  1. 分片介紹
    當存入mongo的數據很大的時候,我們需要選擇將數據分片存放到不同的機器上。分片不同於副本集,副本集中主從存放的數據都一樣,但是不同分片存放的數據是不同的,所有的分片組成了集羣,存放着所有的數據。
  2. 配置服務器
    配置服務器相當於集羣的大腦,保存着集羣和分片的元數據(個人理解和hbase的meta root表類似),即各分片包含哪些數據的信息
    configsvr.conf內容如下:
    dbpath=/home/xxx/xxx/mongodb/db/configdb
    logpath=/home/xxx/xxx/mongodb/log/configdb.log
    logappend=true
    port=20001
    fork=true
    配置比較簡單,不多做解釋
    ./mongod --configsvr -f configsvr.conf
    3個節點上都要啓動
  3. 配置mongos進程
    三個配置服務器處於運行狀態,啓動一個mongos進程供應用程序連接(不需要單獨得連接mongod進程了),mongos是路由節點,客戶端連接他之後獲取數據,mongos會知道數據存放在哪個分片下,然後去取。
    mongos.conf內容如下:
    logpath=/home/xxx/xxx/mongodb/log/mongos.log
    logappend=true
    port=27117
    fork=true
    ./mongos --configdb ip00:20001,ip05:20001,ip07:20001 -f mongos.conf
  4. 添加分片
    首先按照上一篇搭建好一個mongo副本集,接下去將副本集轉換爲分片
    連接到路由節點(mongos)
    ./mongo ip:27117                                   # 該ip是啓動mongps進程那臺服務器的ip
    sh.addShard("mondeo/ip:27017")                # 指定副本集的名字,和副本集中的某一個節點(其他節點可以感知到)
    可以添加多個分片,再新建一個副本集按照上述方法添加分片

    不推薦數據量小的情況下使用分片,這樣會使得插入速度變慢(數據需要在節點中同步),理論上副本集對付千萬級別的數據已經足夠。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章