MongoDB分片集群

Sharding cluster是一種可以水平擴(kuò)展的模式,可以滿足MongoDB數(shù)據(jù)量大量增長(zhǎng)的需求,實(shí)際大規(guī)模應(yīng)用一般會(huì)采用這種架構(gòu)去構(gòu)建。sharding分片很好的解決了單臺(tái)服務(wù)器磁盤空間、內(nèi)存、cpu等硬件資源的限制問(wèn)題,把數(shù)據(jù)水平拆分出去,降低單節(jié)點(diǎn)的訪問(wèn)壓力。每個(gè)分片都是一個(gè)獨(dú)立的數(shù)據(jù)庫(kù),所有的分片組合起來(lái)構(gòu)成一個(gè)邏輯上的完整的數(shù)據(jù)庫(kù)。因此,分片機(jī)制降低了每個(gè)分片的數(shù)據(jù)操作量及需要存儲(chǔ)的數(shù)據(jù)量,達(dá)到多臺(tái)服務(wù)器來(lái)應(yīng)對(duì)不斷增加的負(fù)載和數(shù)據(jù)的效果。

為什么使用分片?
復(fù)制所有的寫入操作到主節(jié)點(diǎn)
延遲的敏感數(shù)據(jù)會(huì)在主節(jié)點(diǎn)查詢
單個(gè)副本集限制在12個(gè)節(jié)點(diǎn)
當(dāng)請(qǐng)求量巨大時(shí)會(huì)出現(xiàn)內(nèi)存不足。
本地磁盤不足
垂直擴(kuò)展價(jià)格昂貴

mongodb sharding服務(wù)器架構(gòu)

  • Shard Server:
    mongod 實(shí)例,用于存儲(chǔ)實(shí)際的數(shù)據(jù)塊,實(shí)際生產(chǎn)環(huán)境中一個(gè) shard server 角色可由幾臺(tái)機(jī)器組個(gè)一個(gè) relica set 承擔(dān),防止主機(jī)單點(diǎn)故障。這是一個(gè)獨(dú)立普通的mongod進(jìn)程,保存數(shù)據(jù)信息,可以是一個(gè)副本集也可以是單獨(dú)的一臺(tái)服務(wù)器。
  • Config Server:
    mongod實(shí)例,存儲(chǔ)了整個(gè) ClusterMetadata,其中包括 chunk信息。
    這是一個(gè)獨(dú)立的mongod進(jìn)程,保存集群和分片的元數(shù)據(jù),即各分片包含了哪些數(shù)據(jù)的信息。最先開始建立,啟用日志功能。像啟動(dòng)普通的 mongod 一樣啟動(dòng)
    配置服務(wù)器,指定configsvr 選項(xiàng)。不需要太多的空間和資源,配置服務(wù)器的 1KB 空間相當(dāng)于真是數(shù)據(jù)的 200MB。保存的只是數(shù)據(jù)的分布表。
  • Query Routers:
    前端路由,客戶端由此接入,且讓整個(gè)集群看上去像單一數(shù)據(jù)庫(kù),前端應(yīng)用可以透明使用。
    起到一個(gè)路由的功能,供程序連接。本身不保存數(shù)據(jù),在啟動(dòng)時(shí)從配置服務(wù)器加載集群信息,開啟 mongos 進(jìn)程需要知道配置服務(wù)器的地址,指定configdb選項(xiàng)。

mongos片鍵的意義
一個(gè)好的片鍵對(duì)分片至關(guān)重要。 片鍵必須是一個(gè)索引 ,通 過(guò)sh.shardCollection 加會(huì)自動(dòng)創(chuàng)建索引。
一個(gè)自增的片鍵對(duì)寫入和數(shù)據(jù)均勻分布就不是很好, 因?yàn)樽栽?br> 的片鍵總會(huì)在一個(gè)分片上寫入,后續(xù)達(dá)到某個(gè)閥值可能會(huì)寫到別的分片。但是按照片鍵查詢會(huì)非常高效。
隨機(jī)片鍵對(duì)數(shù)據(jù)的均勻分布效果很好。注意盡量避免在多個(gè)分片上進(jìn)行查詢。在所有分片上查詢,mongos 會(huì)對(duì)結(jié)果進(jìn)行歸并排序

分片集群的構(gòu)造

更多內(nèi)容參考:https://www.cnblogs.com/nulige/p/7613721.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.1 MongoDB復(fù)制集簡(jiǎn)介 一組Mongodb復(fù)制集,就是一組mongod進(jìn)程,這些進(jìn)程維護(hù)同一個(gè)數(shù)據(jù)集合。...
    IT_小白閱讀 914評(píng)論 0 4
  • 1、分片組件 mongo中分片由以下三個(gè)組件組成:Shard Server,Config Server,Route...
    橋頭放牛娃閱讀 2,276評(píng)論 2 22
  • 本文主要介紹了mongoDB分片集群概念,以及分片集群搭建過(guò)程,方便下次參考。 概念 分片(sharding)是一...
    科威舟VS求利閱讀 1,527評(píng)論 0 0
  • Mongodb分片概括 分片在多臺(tái)服務(wù)器上分布數(shù)據(jù)的方法, Mongodb使用分片來(lái)支持具有非常大的數(shù)據(jù)集和高吞吐...
    平凡的運(yùn)維之路閱讀 14,330評(píng)論 0 7
  • Mongodb分片概括 分片在多臺(tái)服務(wù)器上分布數(shù)據(jù)的方法, Mongodb使用分片來(lái)支持具有非常大的數(shù)據(jù)集和高吞吐...
    Vernon閱讀 626評(píng)論 0 1

友情鏈接更多精彩內(nèi)容