程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> MongoDB分片(sharding),

MongoDB分片(sharding),

編輯:JAVA綜合教程

MongoDB分片(sharding),


1.概念

分片(sharding)是指將數據拆分,將其分散存在不同的機器上的過程。有時也用分區(partitioning)來表示這個概念。將數據分散到不同的機器上,不需要功能強大的大型計算機就可以儲存更多的數據,處理更多的負載。

 

2.分片

mongos就是一個路由服務器,它會根據管理員設置的“片鍵”將數據分攤到自己管理的mongod集群,數據和片的對應關系以及相應的配置信息保存在“config服務器”上。 mongod:一個普通的數據庫實例,如果不分片的話,我們會直接連上mongod。

 

3.如果實現分片

①創建三個目錄,分別存放兩個mongod服務的數據文件和config服務的數據文件

 

②開啟config服務器 。mongos要把mongod之間的配置放到config服務器裡面,所以首先開啟它,這裡就使用2222端口。

命令為: mongod --dbpath E:\sharding\config_node --port 2222

 

③開啟mongos服務器 。這裡要注意的是我們開啟的是mongos,端口3333,同時指定下config服務器。

命令為: mongos --port 3333 --configdb=127.0.0.1:2222

 

④啟動mongod服務器 。對分片來說,也就是要添加片了,這裡開啟兩個mongod服務,端口分別為:4444,5555。命令為:

mongod --dbpath E:\sharding\mongod_node1 --port 4444
mongod --dbpath E:\sharding\mongod_node2 --port 5555

 

⑤服務配置 。client直接跟mongos打交道,也就說明我們要連接mongos服務器,然後將4444,5555的mongod交給mongos,添加分片也就是addshard()。

⑥開啟數據庫分片功能,命令很簡單 enablesharding(),這裡就開啟test數據庫。

⑦指定集合中分片的片鍵,這裡就指定為person.name鍵。

⑧通過mongos插入10w記錄,然後通過printShardingStatus命令查看mongodb的數據分片情況。

這裡主要看三點信息:  
① shards:     可以看到已經別分為兩個片了,shard0000和shard0001。  
② databases:: 這裡有個partitioned字段表示是否分區,這裡可以看到test已經分區。  
③ chunks:     集合被砍成四段:                            
無窮小 —— jack0,
jack0 ——jack234813,
jack234813——jack9999,
jack9999——無窮大。

分區情況為:3:1,從後面的 on shardXXXX也能看得出。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved