MongoDB - 分片



分片是將資料記錄儲存在多臺機器上的過程,它是 MongoDB 滿足資料增長需求的方法。隨著資料量的增加,單臺機器可能無法儲存資料,也無法提供可接受的讀寫吞吐量。分片透過水平擴充套件解決了這個問題。使用分片,您可以新增更多機器來支援資料增長以及讀寫操作的需求。

為什麼選擇分片?

  • 在複製中,所有寫入都發送到主節點

  • 延遲敏感的查詢仍然傳送到主節點

  • 單個副本集最多隻能包含 12 個節點

  • 當活動資料集很大時,記憶體可能不夠大

  • 本地磁碟空間不足

  • 垂直擴充套件成本太高

MongoDB 中的分片

下圖顯示了使用分片叢集的 MongoDB 中的分片。

MongoDB Sharding

在下圖中,有三個主要元件:

  • 分片 - 分片用於儲存資料。它們提供高可用性和資料一致性。在生產環境中,每個分片都是一個單獨的副本集。

  • 配置伺服器 - 配置伺服器儲存叢集的元資料。此資料包含叢集資料集到分片的對映。查詢路由器使用此元資料將操作定向到特定分片。在生產環境中,分片叢集恰好有 3 個配置伺服器。

  • 查詢路由器 - 查詢路由器基本上是 mongo 例項,它們與客戶端應用程式互動並將操作定向到相應的分片。查詢路由器處理並將操作定向到分片,然後將結果返回給客戶端。分片叢集可以包含多個查詢路由器以劃分客戶端請求負載。客戶端將請求傳送到一個查詢路由器。通常,分片叢集有很多查詢路由器。

廣告