溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB實戰(zhàn)(11)Sharding 分片(上)

發(fā)布時間:2020-08-05 04:00:10 來源:網(wǎng)絡 閱讀:2988 作者:shayang88 欄目:MongoDB數(shù)據(jù)庫

這是一種將海量的數(shù)據(jù)水平擴展的數(shù)據(jù)庫集群系統(tǒng)數(shù)據(jù)分表存儲在sharding 的各個節(jié)點
上使用者通過簡單的配置就可以很方便地構建一個分布式MongoDB 集群。

 

MongoDB 的數(shù)據(jù)分塊稱為 chunk。每個 chunk 都是 Collection 中一段連續(xù)的數(shù)據(jù)記錄通
常最大尺寸是 200MB超出則生成新的數(shù)據(jù)塊。


要構建一個 MongoDB Sharding Cluster需要三種角色

1、 Shard Server


即存儲實際數(shù)據(jù)的分片每個Shard 可以是一個mongod 實例也可以是一組mongod 實例
構成的Replica Set。為了實現(xiàn)每個Shard 內部的auto-failoverMongoDB 官方建議每個Shard
為一組Replica Set。


2、 Config Server


為了將一個特定的collection 存儲在多個shard 中需要為該collection 指定一個shard key
例如{age: 1} shard key 可以決定該條記錄屬于哪個chunk。Config Servers 就是用來存儲
所有shard 節(jié)點的配置信息、每個chunk 的shard key 范圍、chunk 在各shard 的分布情況、
該集群中所有DB 和collection 的sharding 配置信息。


 3、Route Process


這是一個前端路由客戶端由此接入然后詢問Config Servers 需要到哪個Shard 上查詢或
保存記錄再連接相應的Shard 進行操作最后將結果返回給客戶端??蛻舳酥恍枰獙⒃?br />發(fā)給mongod 的查詢或更新請求原封不動地發(fā)給Routing Process而不必關心所操作的記錄
存儲在哪個Shard 上。


下面我們在同一臺物理機器上構建一個簡單的 Sharding Cluster
架構圖如下

MongoDB實戰(zhàn)(11)Sharding 分片(上)

創(chuàng)建數(shù)據(jù)目錄和日志目錄

MongoDB實戰(zhàn)(11)Sharding 分片(上)

啟動Shard Server 實例1和實例2

MongoDB實戰(zhàn)(11)Sharding 分片(上)

MongoDB實戰(zhàn)(11)Sharding 分片(上)

啟動Config Server

MongoDB實戰(zhàn)(11)Sharding 分片(上)

啟動Route Process

MongoDB實戰(zhàn)(11)Sharding 分片(上)

mongos 啟動參數(shù)中chunkSize 這一項是用來指定chunk 的大小的單位是MB默認大小
為200MB為了方便測試Sharding 效果我們把chunkSize 指定為 1MB。

 

配置Sharding

接下來我們使用MongoDB Shell 登錄到mongos添加Shard 節(jié)點

MongoDB實戰(zhàn)(11)Sharding 分片(上)

 

驗證Sharding正常工作

我們已經對test.users 表進行了分片的設置下面我們們插入一些數(shù)據(jù)看一下結果

MongoDB實戰(zhàn)(11)Sharding 分片(上)

MongoDB實戰(zhàn)(11)Sharding 分片(上)

我們看一下磁盤上的物理文件情況

MongoDB實戰(zhàn)(11)Sharding 分片(上)

看上述結果表明test.users 集合已經被分片處理了但是通過mongos 路由我們并感覺
不到是數(shù)據(jù)存放在哪個shard 的chunk 上的這就是MongoDB 用戶體驗上的一個優(yōu)勢即
對用戶是透明的。

 

 

 

 

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI