1. 程式人生 > >mongodb基礎(圖解mongodb底層原理)

mongodb基礎(圖解mongodb底層原理)

Mongodb的叢集部署方案有三類角色:實際資料儲存節點,配置檔案儲存節點和路由接入節點。

連結的客戶端直接與路由節點相連,從配置節點上查詢資料,根據查詢結果到實際的儲存節點上查詢和儲存資料。

Mongodb的部署方案有單機部署,複本集(主備)部署,分片部署,複本集與分片混合部署。

混合部署方式如圖:

混合部署方式下向MongoDB 寫資料的流程如圖:

 混合部署方式下讀MongoDB 裡的資料流程如圖:

對於複本集,又有主和從兩種角色,寫資料和讀資料也是不同,寫資料的過程是隻寫到主結點中,由主
結點以非同步的方式同步到從結點中:

 

 而讀資料則只要從任一結點中讀取,具體到哪個結點讀取是可以指定的:

 對於MongoDB 的分片,假設我們以某一索引鍵(ID)為片鍵,ID 的區間[0,50],劃分成5 個chunk,
分別儲存到3 個片伺服器中,如圖所示:

 假如資料量很大,需要增加片伺服器時可以只要移動chunk 來均分資料即可。

配置結點:
儲存配置檔案的伺服器其實儲存的是片鍵與chunk 以及chunk 與server 的對映關係,用上面的資料表
示的配置結點儲存的資料模型如下表:

map1

key range chunk
[0,10} chunk1
[10,20} chunk2
[20,30} chunk3
[30,40} chunk4
[40,50} chunk5

 map2

chunk shard
chunk1 shard1
chunk2 shard2
chunk3 shard3
chunk4 shard4
chunk5 shard5

 路由節點:

路由角色的節點在分片的情況下起到負載均衡的作用。