美文网首页
Mongodb学习笔记(九)之 分片

Mongodb学习笔记(九)之 分片

作者: 我的小鱼干去哪儿了 | 来源:发表于2019-01-16 23:43 被阅读0次

1.分片原理

image.png

2.具体分片操作

1:在3台独立服务器上,分别运行 27017,27018,27019实例, 互为副本集,形成3套repl set
2: 在3台服务器上,各配置config server, 运行27020端口上

3: 配置mongos
./bin/mongos --port 30000
--dbconfig 192.168.1.201:27020,192.168.1.202:27020,192.168.1.203:27020

4:连接路由器
./bin/mongo --port 30000

5: 添加repl set为片节点

sh.addShard(‘192.168.1.201:27017’);
sh.addShard(‘192.168.1.202:27018’);
sh.addShard(‘192.168.1.203:27019’);

6: 添加待分片的库

sh.enableSharding(databaseName);

7: 添加待分片的表

sh.shardCollection(‘dbName.collectionName’,{field:1});

Field是collection的一个字段,系统将会利用filed的值,来计算应该分到哪一个片上.
这个filed叫”片键”, shard key

分片原理

mongodb不是从单篇文档的级别,绝对平均的散落在各个片上,

而是N篇文档,形成一个块"chunk",
优先放在某个片上,
当这片上的chunk,比另一个片的chunk,区别比较大时, (>=3) ,会把本片上的chunk,移到另一个片上, 以chunk为单位,
维护片之间的数据均衡

问: 为什么插入了10万条数据,才2个chunk?
答: 说明chunk比较大(默认是64M)
在config数据库中,修改chunksize的值.

问: 既然优先往某个片上插入,当chunk失衡时,再移动chunk,
自然,随着数据的增多,shard的实例之间,有chunk来回移动的现象,这将带来什么问题?
答: 服务器之间IO的增加,

接上问: 能否我定义一个规则, 某N条数据形成1个块,预告分配M个chunk,
M个chunk预告分配在不同片上.
以后的数据直接入各自预分配好的chunk,不再来回移动?

答: 能, 手动预先分片!

以shop.user表为例
1: sh.shardCollection(‘shop.user’,{userid:1}); //user表用userid做shard key

2: for(var i=1;i<=40;i++) { sh.splitAt('shop.user',{userid:i*1000}) } // 预先在1K 2K...40K这样的界限切好chunk(虽然chunk是空的), 这些chunk将会均匀移动到各片上.

3: 通过mongos添加user数据. 数据会添加到预先分配好的chunk上, chunk就不会来回移动了.

相关文章

  • Mongodb学习笔记(九)之 分片

    1.分片原理 2.具体分片操作 1:在3台独立服务器上,分别运行 27017,27018,27019实例, 互为副...

  • NoSQL三--mongodb(二)

    目录 十一、mongodb分片介绍十二、mongodb分片搭建十三、mongodb分片测试十四、mongodb备份...

  • MongoDB分片群集组件

    MongoDB分片群集包含以下组件: 分片:每个分片包含分片数据的子集。从MongoDB 3.6开始,必须将分片部...

  • MongoDB 集群配置笔记

    MongoDB 集群配置笔记 配置一个含有主从机制、自动分片、去中心化的MongoDB集群 一、配置文件说明 必备...

  • Mongodb分片集群搭建

    MongoDb分片集群搭建 基于mongodb3.6 分片集群的权限控制 Brief: 内部通过keyfile控制...

  • 【mongoDB】MongoDB PSS vs PSA

    MongoDB 学习笔记之 WriteConcernhttps://www.cnblogs.com/ExMan/p...

  • MongoDB 集群

    分片群集 MongoDB分片群集由以下组件组成: 分片:每个分片包含分片数据。每个分片都可以部署为副本集。 mon...

  • MongoDB Sharding(分片)笔记

    Sharding 是一种将数据分散到多台主机上的方法,使得 MongoDB 能够支持处理超大数据集和超高吞吐量。实...

  • Mongodb分片集群部署

    Mongodb分片概括 分片在多台服务器上分布数据的方法, Mongodb使用分片来支持具有非常大的数据集和高吞吐...

  • Mongodb分片集群部署

    Mongodb分片概括 分片在多台服务器上分布数据的方法, Mongodb使用分片来支持具有非常大的数据集和高吞吐...

网友评论

      本文标题:Mongodb学习笔记(九)之 分片

      本文链接:https://www.haomeiwen.com/subject/nkmvdqtx.html