MongoDB教學
MongoDB快速入門
MongoDB歷史
MongoDB特點
MongoDB數據庫的優點
MongoDB安裝配置(Windows)
MongoDB安裝配置(Ubuntu)
MongoDB安裝配置(RedHat/CentOS)
MongoDB數據建模
MongoDB創建數據庫
MongoDB刪除數據庫
MongoDB創建集合
MongoDB刪除集合
MongoDB數據類型
MongoDB插入文檔
MongoDB查詢文檔
MongoDB更新文檔
MongoDB刪除文檔
MongoDB投影(選擇字段)
MongoDB限制記錄數
MongoDB排序記錄
MongoDB索引
MongoDB聚合
MongoDB複製
MongoDB分片
MongoDB備份與恢復
MongoDB部署
Java連接MongoDB操作
Python連接MongoDB操作
PHP連接MongoDB操作
Ruby連接MongoDB操作
MongoDB分片
分片是在多臺機器之間存儲數據記錄的過程,MongoDB是滿足數據增長需求的方法。 隨着數據的大小增加,單個機器可能不足以存儲所有數據,也不能提供可接受的讀寫吞吐量。 分片解決了水平縮放的問題。 使用分片,可以添加更多的機器來支持數據增長和讀寫操作的需求。
爲什麼要分片?
- 在複製中,所有寫入都轉到主節點
- 延遲敏感查詢到主節點
- 單個副本集合有
12
個節點的限制 - 當活動數據集較大時,內存不足夠大
- 本地磁盤不夠大
- 垂直擴縮太昂貴了
MongoDB中的分片
下圖顯示了使用分片集羣的 MongoDB 分片。
在上圖中,有三個主要組件 -
碎片(Shards) - 碎片用於存儲數據。它們提供高可用性和數據一致性。 在生產環境中,每個分片是一個單獨的副本集。
配置服務器(Config Servers) - 配置服務器存儲集羣的元數據。 該數據包含集羣的數據集與分片的映射。查詢路由器使用此元數據將操作定位到特定的分片。 在生產環境中,分片集羣正好有
3
個配置服務器。查詢路由器(Query Routers) - 查詢路由器基本上是 mongo 實例,與客戶端應用程序的接口和直接操作到適當的分片。 查詢路由器處理並將操作定向到碎片,然後將結果返回給客戶端。 分片集羣可以包含多個查詢路由器來分割客戶端請求負載。 客戶端向一個查詢路由器發送請求。 一般來說,分片集羣有許多查詢路由器。