mongodb分片技術_動力節(jié)點Java學院整理
在mongodb里面存在另一種集群,就是分片技術,當數(shù)據(jù)量達到T級別的時候,我們的磁盤,內存就吃不消了,針對這樣的場景我們該如何應對。
一:分片
mongodb采用將集合進行拆分,然后將拆分的數(shù)據(jù)均攤到幾個片上的一種解決方案。

下面我對這張圖解釋一下:
人臉:代表客戶端,客戶端肯定說,你數(shù)據(jù)庫分片不分片跟我沒關系,我叫你干啥就干啥,沒什么好商量的。
mongos: 首先我們要了解”片鍵“的概念,也就是說拆分集合的依據(jù)是什么?按照什么鍵值進行拆分集合....
好了,mongos就是一個路由服務器,它會根據(jù)管理員設置的“片鍵”將數(shù)據(jù)分攤到自己管理的mongod集群,數(shù)據(jù)
分片的對應關系以及相應的配置信息保存在"config服務器"上。
mongod: 一個普通的數(shù)據(jù)庫實例,如果不分片的話,我們會直接連上mongod。
二: 實戰(zhàn)
首先我們準備4個mongodb程序,我這里是均攤在C,D,E,F(xiàn)盤上,當然你也可以做多個文件夾的形式。
1:開啟config服務器
先前也說了,mongos要把mongod之間的配置放到config服務器里面,理所當然首先開啟它,我這里就建立2222端口。

2: 開啟mongos服務器
這里要注意的是我們開啟的是mongos,不是mongod,同時指定下config服務器,這里我就開啟D盤上的mongodb,端口3333。

3:啟動mongod服務器
對分片來說,也就是要添加片了,這里開啟E,F(xiàn)盤的mongodb,端口為:4444,5555。

4: 服務配置
哈哈,是不是很興奮,還差最后一點配置我們就可以大功告成。
<1> 先前圖中也可以看到,我們client直接跟mongos打交道,也就說明我們要連接mongos服務器,然后將4444,5555的mongod
交給mongos,添加分片也就是addshard()。

這里要注意的是,在addshard中,我們也可以添加副本集,這樣能達到更高的穩(wěn)定性。
<2>片已經(jīng)集群了,但是mongos不知道該如何切分數(shù)據(jù),也就是我們先前所說的片鍵,在mongodb中設置片鍵要做兩步
①:開啟數(shù)據(jù)庫分片功能,命令很簡單 enablesharding(),這里我就開啟test數(shù)據(jù)庫。
②:指定集合中分片的片鍵,這里我就指定為person.name字段。

5: 查看效果
好了,至此我們的分片操作全部結束,接下來我們通過mongos向mongodb插入10w記錄,然后通過printShardingStatus命令
查看mongodb的數(shù)據(jù)分片情況。

這里主要看三點信息:
① shards: 我們清楚的看到已經(jīng)別分為兩個片了,shard0000和shard0001。
② databases: 這里有個partitioned字段表示是否分區(qū),這里清楚的看到test已經(jīng)分區(qū)。
③ chunks: 這個很有意思,我們發(fā)現(xiàn)集合被砍成四段:
無窮小 —— jack0,jack0 ——jack234813,jack234813——jack9999,jack9999——無窮大。
分區(qū)情況為:3:1,從后面的 on shardXXXX也能看得出。
相關文章
MongoDB 索引創(chuàng)建和查詢優(yōu)化的方法
這篇文章主要介紹了MongoDB 索引創(chuàng)建和查詢優(yōu)化的方法,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-07-07
mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼
這篇文章主要介紹了 mongoDB 實現(xiàn)主從讀寫分離實現(xiàn)的實例代碼的相關資料,需要的朋友可以參考下2017-01-01
Mongodb使用$<identifier>過濾更新數(shù)組元素的示例代碼
帶有過濾器的位置操作符$<identifier>定義數(shù)組中數(shù)據(jù)更新時,只符合identifier定義條件的元素才可以更新,本文給大家介紹了Mongodb使用$<identifier>過濾更新數(shù)組元素的操作方法,很值得探討和學習,需要的朋友可以參考下2024-06-06
windows與mac安裝mongodb數(shù)據(jù)庫的方法步驟與注意事項
今天小編就為大家分享一篇關于windows與mac安裝mongodb數(shù)據(jù)庫的方法步驟與注意事項,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
CentOS 6.4創(chuàng)建Mongodb副本集
這篇文章主要為大家詳細介紹了CentOS 6.4創(chuàng)建Mongodb副本集的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
使用命令方式安裝MongoDB指南(Windows、Linux)
這篇文章主要介紹了使用命令方式安裝MongoDB指南,本文分別介紹Windows、Linux下使用命令的方式安裝mongodb,需要的朋友可以參考下2015-04-04
MongoDB連接數(shù)據(jù)庫并創(chuàng)建數(shù)據(jù)等使用方法
MongoDB?是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。接下來通過本文給大家介紹MongoDB連接數(shù)據(jù)庫并創(chuàng)建數(shù)據(jù)等使用方法,感興趣的朋友一起看看吧2021-11-11

