您好,登錄后才能下訂單哦!
這是一種將海量的數據水平擴展的數據庫集群系統數據分表存儲在sharding 的各個節點
上使用者通過簡單的配置就可以很方便地構建一個分布式MongoDB 集群。
MongoDB 的數據分塊稱為 chunk。每個 chunk 都是 Collection 中一段連續的數據記錄通
常最大尺寸是 200MB超出則生成新的數據塊。
要構建一個 MongoDB Sharding Cluster需要三種角色
1、 Shard Server
即存儲實際數據的分片每個Shard 可以是一個mongod 實例也可以是一組mongod 實例
構成的Replica Set。為了實現每個Shard 內部的auto-failoverMongoDB 官方建議每個Shard
為一組Replica Set。
2、 Config Server
為了將一個特定的collection 存儲在多個shard 中需要為該collection 指定一個shard key
例如{age: 1} shard key 可以決定該條記錄屬于哪個chunk。Config Servers 就是用來存儲
所有shard 節點的配置信息、每個chunk 的shard key 范圍、chunk 在各shard 的分布情況、
該集群中所有DB 和collection 的sharding 配置信息。
3、Route Process
這是一個前端路由客戶端由此接入然后詢問Config Servers 需要到哪個Shard 上查詢或
保存記錄再連接相應的Shard 進行操作最后將結果返回給客戶端。客戶端只需要將原本
發給mongod 的查詢或更新請求原封不動地發給Routing Process而不必關心所操作的記錄
存儲在哪個Shard 上。
下面我們在同一臺物理機器上構建一個簡單的 Sharding Cluster
架構圖如下
創建數據目錄和日志目錄
啟動Shard Server 實例1和實例2
啟動Config Server
啟動Route Process
mongos 啟動參數中chunkSize 這一項是用來指定chunk 的大小的單位是MB默認大小
為200MB為了方便測試Sharding 效果我們把chunkSize 指定為 1MB。
配置Sharding
接下來我們使用MongoDB Shell 登錄到mongos添加Shard 節點
驗證Sharding正常工作
我們已經對test.users 表進行了分片的設置下面我們們插入一些數據看一下結果
我們看一下磁盤上的物理文件情況
看上述結果表明test.users 集合已經被分片處理了但是通過mongos 路由我們并感覺
不到是數據存放在哪個shard 的chunk 上的這就是MongoDB 用戶體驗上的一個優勢即
對用戶是透明的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。