位置:首頁 > 數據庫 > MongoDB教學 > MongoDB 分片

MongoDB 分片

分片

分片存儲在多台機器上的數據記錄的過程,它是MongoDB的方法來滿足數據增長的需求。一台機器上的大小的數據的增加,可能並不足夠來存儲數據,也不能提供可接受的讀取和寫入通過。分片解決問題的水平縮放。通過分片,你添加更多的機器支持數據增長的讀取和寫入操作需求。

為什麼要分片?

  • 複製所有寫轉到掌握節點

  • 延時敏感的查詢還是到主節點

  • 單副本集有12個節點的限製

  • 內存不能足夠大,當活動數據集很大

  • 本地磁盤不夠大

  • 垂直縮放太貴

MongoDB分片

下麵給出的圖顯示了在MongoDB中使用分片分片集群。

MongoDB Sharding

在上麵給出的圖中,有三個主要組成部分,這說明如下:

  • 碎片: 碎片被用來存儲數據。它們提供了高可用性和數據的一致性。在生產環境中,每個碎片是一個單獨的副本集。

  • 配置服務器: 配置服務器集群的元數據存儲。該數據包含集群的數據碎片的映射。查詢路由器使用這個元數據,操作具體的碎片。在生產環境中,有整整3分片集群配置服務器。

  • 查詢路由: 查詢路由基本上是Mongos實例,客戶端應用程序界麵和直接操作相應的碎片。查詢路由過程目標操作的碎片,然後將結果返回到客戶端。分片集群可以包含多個查詢路由來劃分客戶端請求負載。客戶端發送請求到一個查詢路由。一般分片集群有許多查詢路由。