- 分片介紹
當存入mongo的數據很大的時候,我們需要選擇將數據分片存放到不同的機器上。分片不同於副本集,副本集中主從存放的數據都一樣,但是不同分片存放的數據是不同的,所有的分片組成了集羣,存放着所有的數據。 - 配置服務器
配置服務器相當於集羣的大腦,保存着集羣和分片的元數據(個人理解和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個節點上都要啓動 - 配置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 - 添加分片
首先按照上一篇搭建好一個mongo副本集,接下去將副本集轉換爲分片
連接到路由節點(mongos)
./mongo ip:27117 # 該ip是啓動mongps進程那臺服務器的ip
sh.addShard("mondeo/ip:27017") # 指定副本集的名字,和副本集中的某一個節點(其他節點可以感知到)
可以添加多個分片,再新建一個副本集按照上述方法添加分片
不推薦數據量小的情況下使用分片,這樣會使得插入速度變慢(數據需要在節點中同步),理論上副本集對付千萬級別的數據已經足夠。
mongodb集羣搭建-分片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.