MongoDB分片集群

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

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

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

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

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

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

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

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

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

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

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