圖解MongoDB叢集部署原理(3)

Tom彈架構發表於2022-01-05

MongoDB的叢集部署方案中有三類角色:實際資料儲存結點、配置檔案儲存結點和路由接入結點。
連線的客戶端直接與路由結點相連,從配置結點上查詢資料,根據查詢結果到實際的儲存結點上查詢和儲存資料。MongoDB的部署方案有單機部署、複本集(主備)部署、分片部署、複本集與分片混合部署。
混合的部署方式如圖:

file

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

file

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

file

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

file

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

file

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

file

假如資料量很大,需要增加片伺服器時可以只要移動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 shard1
chunk3 shard2
chunk4 shard2
chunk5 shard3

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

本文為“Tom彈架構”原創,轉載請註明出處。技術在於分享,我分享我快樂!
如果本文對您有幫助,歡迎關注和點贊;如果您有任何建議也可留言評論或私信,您的支援是我堅持創作的動力。

原創不易,堅持很酷,都看到這裡了,小夥伴記得點贊、收藏、在看,一鍵三連加關注!如果你覺得內容太乾,可以分享轉發給朋友滋潤滋潤!

相關文章