mongodb的sharding(分片)
来源:互联网 发布:淘宝举报中心官网 编辑:程序博客网 时间:2024/04/30 12:43
sharding是mongodb进行横向扩容的方法,sharding把一个集合的不同部分存储到不同的机器上,当一个数据库集合变得很大时,你只需要加入新的机器即可。sharding自动把集合的数据分布到新的服务器上,sharding自动实现数据和读写负载均衡。
为了使集群具有sharding功能,首先需要建立一个sharding集群。然后就可以在集群内指定某个数据库是否启用sharding,在启用sharding的数据库内,可以选择哪个集合(collection)可以sharding,每个sharding的集合要有一个shard key。shard key用于决定该集合内的所有文档如何在集群内的机器上分布。shard key是一个字段,存在于每一个文档中。一个给定的分片保存了所有key值在其范围内的文档。shard key如同indexes一样,可以使单字段或多字段的。
在一个shard内,mongodb还把文档分为chunks,每个chunk代表本shard内的一个小的范围。当一个chunk的大小超过chunk size时,mongodb把chunk切分为更小的chunk,但依然属于这个shard。
shard key的选择
shard key的好坏直接影响到集群的性能,容量和能力。选择shard key要考虑数据的模式和你的应用程序读写数据库的方式。
理想的shard key具有以下特点:
1. 易于切分,最好是无限的。
2. 具有高度的随机性。
3. 应该是你的请求的主要字段。
mongodb使用balancing进行分布式数据均衡。当一个shard与其它shard相比具有太多的chunk时,mongodb自动在shard间均衡数据,但应用层对此无感知。
sharding会给集群带来一些负载,在以下情况发生时,可以考虑使用sharding:
1. 数据接近或超过单个节点的存储容量。
2.系统中活动working set的大小很快将要超过系统RAM的最大容量。
3.系统有大量的写请求,单个mongodb实例不足以支持。
设计系统时,如果预见到最终需要扩容时,考虑哪个集合需要sharding,并为其设计shard key。
一个sharded集群需要以下配置:
三台配置服务器.
2台以上的shards服务器,每个服务器运行一个或多个mongod实例。
一个或多个mongos实例
- mongodb的sharding(分片)
- [mongodb翻译]分片的限制(sharding limit)
- MongoDB---Sharding分片
- MongoDB Sharding 分片技术
- MongoDB之Sharding 分片
- Mongodb Sharding 分片
- MongoDB Sharding分片管理
- MongoDB Sharding 分片技术
- mongodb-sharding 分片
- mongodb—分片(sharding)
- MongoDB 分片(Sharding)
- MongoDB分片实战(二):Sharding
- mongodb sharding cluster(分片集群)
- MongoDB 自动分片 auto sharding
- 第八章:MongoDB sharding 分片
- MongoDB分片实战(二):Sharding
- mongodb 3.4 配置sharding分片
- mongodb的sharding(分片)横向扩容的方法
- Android系统Recovery工作原理之使用update.zip升级过程分析(二)---update.zip差分包问题的解决
- Tomcat处理HTTP请求源码分析
- as3学习资料
- IEEE 802.11ac介绍
- JSP页面清除缓存
- mongodb的sharding(分片)
- Spring的ContextLoaderListener简介
- 中介者模式
- vim基本命令
- Android常用的一些make命令
- ArcGIS Server中配置安全策略文件
- hdpi,mdpi,ldpi区别
- profile中password limit的一点总结
- Syncfusion.OlapSilverlight.Data.CellSet 序列化导出到XML