Mongodb資料庫集群分片技術簡述

2021-06-16 15:15:23 字數 1547 閱讀 4619

一、分片

二、mongos

mongodb需要路由程序mongos,mongos知道所有資料的存放位置,應用連線mongos傳送請求.mongos對應用隱藏分片細節,將請求**到相應資料庫機器;

三、片鍵

1.片鍵是作為資料拆分的依據,mongodb依據片鍵將資料拆分;

根據機器的數量的新增和刪除,mongodb會重新平衡資料,使的其流量比較均衡;

2.片鍵種類

片鍵包括遞增片鍵和隨機片鍵;

像"timestamp"就屬於遞增片鍵,特點是資料寫入將集中在一台伺服器、而資料的查詢速度非常快;

片鍵的選擇將影響對資料查詢的操作

四、建立分片

分片包括三個組成部分,分別是:片、mongos、配置伺服器;

片:集合資料容器

mongos:路由器程序

配置伺服器:儲存集群配置資訊

1.啟動配置伺服器

mkdir -p ~/dbs/config

./mongod --dbpath ~/dbs/config --port 20000

2.啟動配置伺服器

./mongos --port 3000 --configdb localhost:20000

3.建立分片

mkdir -p ~/dbs/db1

./mongod --dbpath ~/dbs/shard1 --port 10000

4.新增片

連線mongos

./mongo localhost:30000/admin

通過addshard命令新增片(allowlocal允許配置在本地)

db.runcommand()

5.切分資料庫will的test集合

首先開啟will資料庫的分片功能

db.runcommand()

再對集合分片(以_id為基準)

db.runcommand(})

五、保證集群的健壯性

1.多配置伺服器

方法:重複配置伺服器建立步驟;

啟動mongos時 ./mongos --configdb localhost:20001,localhost:20002

2.多mongos程序

方法:多啟動

3.資料的容錯性

方法:建立資料副本

六、管理分片

1.檢視片

db.shards.find()

2.檢視在片上的資料庫列表資訊

db.databases.find()

結果中:

3.塊資訊檢視

db.chunks.find()

MongoDB集群分片

什麼是sharding?說白了就是把海量資料水平擴充套件的集群系統,資料分表儲存在sharding的各個節點上。mongodb的資料分開分為chunk,每個chunk都是collection中的一段連續的資料記錄,一般為200mb,超出則生成新的資料塊。構建sharding需要三種角色,shard伺...

mongodb分片 集群

目前在乙個機器上部署,ip 10.1.2.197,埠列表如下 埠埠埠路由服務 27061 路由服務 27062 路由服務 27063 配置服務 27071 配置服務 27072 配置服務 27073 副本集1 27011 副本集2 27021 副本集3 27031 副本集1 27012 副本集2 2...

MongoDB 分片集群

在mongodb裡面存在另一種集群,就是分片技術,可以滿足mongodb資料量大量增長的需求。當mongodb儲存海量的資料時,一台機器可能不足以儲存資料,也可能不足以提供可接受的讀寫吞吐量。這時,我們就可以通過在多台機器上分割資料,使得資料庫系統能儲存和處理更多的資料。下圖展示了在mongodb中...