鍍金池/ 教程/ 數(shù)據(jù)庫/ 分片
更新文檔
GridFS
Rockmongo 管理工具
Map Reduce
Java
創(chuàng)建備份
數(shù)據(jù)模型
創(chuàng)建數(shù)據(jù)庫
映射
查詢文檔
索引限制
ObjectId
刪除文檔
數(shù)據(jù)類型
高級索引
索引
優(yōu)勢
記錄排序
查詢分析
插入文檔
刪除集合
全文檢索
創(chuàng)建集合
概述
數(shù)據(jù)庫引用
覆蓋索引查詢
安裝環(huán)境
PHP
刪除數(shù)據(jù)庫
固定集合
關(guān)系
聚合
自動增長
復(fù)制
限制記錄
部署
分片
正則表達式
原子操作

分片

分片是一種在多臺機器上存儲數(shù)據(jù)記錄的操作,它是 MongoDB 為應(yīng)對數(shù)據(jù)增長需求而采取的辦法。當(dāng)數(shù)據(jù)量增長時,單臺機器有可能無法存儲數(shù)據(jù)或可接受的讀取寫入吞吐量。通過橫向擴展,分片技術(shù)解決了這個問題。利用分片技術(shù),我們可以添加更多的機器來應(yīng)對數(shù)據(jù)量增加以及讀寫操作的要求。

為何要分片

  • 將所有的寫入操作復(fù)制到主節(jié)點
  • 對延遲敏感的查詢將在主節(jié)點上完成
  • 單個副本集的節(jié)點數(shù)限制為 12 個
  • 當(dāng)活躍數(shù)據(jù)集過大時,內(nèi)存有可能不夠
  • 本地磁盤空間不足
  • 縱向擴展太過昂貴

MongoDB 中的分片

下圖展示了 MongoDB 使用分片集群的情形:

http://wiki.jikexueyuan.com/project/mongodb/images/sharding.png" alt="sharding" />

在上圖中,有三個組件值得說明:

  • 分片 分片用來存儲數(shù)據(jù)。它們提供了高可用性與數(shù)據(jù)一致性。在生產(chǎn)環(huán)境中,每個分片都是一個獨立的副本集。
  • 配置服務(wù)器 配置服務(wù)器(Config server)保存著集群的元數(shù)據(jù)。該數(shù)據(jù)含有集群數(shù)據(jù)集到分片的映射關(guān)系。查詢路由使用該元數(shù)據(jù)來定位特定分片的操作。在生產(chǎn)環(huán)境中,分片集群具有 3 個配置服務(wù)器。
  • 查詢路由 查詢路由(Query Router)基本上就是 mongos 實例,是客戶端的接口,直接操作適當(dāng)?shù)姆制?。查詢路由定位并處理對分片的操作,并將結(jié)果返回至客戶端。分片集群可能含有多個查詢路由,以便分散客戶端請求負載。一個客戶端請求對應(yīng)著一個查詢路由。通常一個分片集群可能有很多查詢路由。
上一篇:創(chuàng)建備份下一篇:優(yōu)勢