shard分片
来源:互联网 发布:高圆圆 张亚东 知乎 编辑:程序博客网 时间:2024/05/24 07:07
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.203:27017’);
>sh.addShard(‘192.168.1.203:27017’);
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的值.
use config
db.settings.save({_id:'chunksize'},{$set:{value:1}});
问: 既然优先往某个片上插入,当chunk失衡时,再移动chunk,
自然,随着数据的增多,shard的实例之间,有chunk来回移动的现象,这将带来什么问题?
答: 服务器之间IO的增加
Foursquare的MongoDB宕机事件:
http://www.infoq.com/cn/news/2010/11/4square_mongodb_outage
接上问: 能否定义一个规则, 某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就不会来回移动了.
- shard分片
- mongodb shard 分片技术
- 数据库 shard 分片存储
- Mongodb Shard分片
- 数据库 shard 分片存储
- MongoDB 分片 (二) Shard
- mongoDB 分片(shard)
- 如何搭建mongodb分片 shard
- mongodb shard 分片
- MongoDB shard replica config/ 分片 复制 配置
- mongodb 学习笔记 09 -- shard分片
- 如何选择MongoDB的分片字段(Shard Key)
- 搜索引擎的分片(shard)和副本(replica)
- 主分片平衡--Shard Overallocation--es横向扩展设计
- [mongodb]shard cluster(分片集群)搭建实录
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- MongoDB 3.4 高可用集群搭建(三)shard 分片
- 解决Maven更新后错误Dynamic Web Module 3.0 requires Java 1.6 or newer
- 关于负数取模
- Java DecimalFormat 用法
- ASP.NET定时发送邮件&windows server
- Unterminated <%@ page tag
- shard分片
- linux系统编程——文件操作总结(2)
- YTU-OJ-Problem A: 最小节点(线性表)
- 士兵杀敌
- QML Styling 及 Singleton 使用方法浅谈
- 1192 回文字符串
- Java 判断两个文件是否相同的两种方法
- vim_文本编辑器主要内容
- 提高iOS开发效率的方法和工具