分片是在多台機器之間儲存資料記錄的過程,MongoDB是滿足資料增長需求的方法。 隨著資料的大小增加,單個機器可能不足以儲存所有資料,也不能提供可接受的讀寫吞吐量。 分片解決了水平縮放的問題。 使用分片,可以新增更多的機器來支援資料增長和讀寫操作的需求。
12
個節點的限制下圖顯示了使用分片叢集的 MongoDB 分片。
在上圖中,有三個主要元件 -
碎片(Shards) - 碎片用於儲存資料。它們提供高可用性和資料一致性。 在生產環境中,每個分片是一個單獨的副本集。
組態伺服器(Config Servers) - 組態伺服器儲存叢集的後設資料。 該資料包含叢集的資料集與分片的對映。查詢路由器使用此後設資料將操作定位到特定的分片。 在生產環境中,分片叢集正好有3
個組態伺服器。
查詢路由器(Query Routers) - 查詢路由器基本上是 mongo 範例,與用戶端應用程式的介面和直接操作到適當的分片。 查詢路由器處理並將操作定向到碎片,然後將結果返回給用戶端。 分片叢集可以包含多個查詢路由器來分割用戶端請求負載。 用戶端向一個查詢路由器傳送請求。 一般來說,分片叢集有許多查詢路由器。