标签:cti 方案 行数据 示例 开始 客户端连接 应该 mongod set
Sharding(分片)是一种将数据划分为多个分片,然后分布在多个机器节点上的解决方案,Mongodb使用sharding支撑其庞大的数据存储以及高效的数据访问。
单个节点上的数据库系统要存储大容量的数据,同时满足高效率的数据访问,对其来说是一个很大的挑战。没准,我们执行一次查询,CPU就挂掉了,就算不挂,查询出来的数据内存根本放不下。
面对这种情况,有2种方式可以解决系统的瓶颈:纵向增强自身、横向扩展节点。
Mongodb使用sharding来实现横向扩展。
Mongodb的分片集群包括以下几个组成部分:
注:因为Mongodb本身提供以上功能,所以这些服务进程都是Mongodb的实例,要不就部署在不同的机器节点上,要不就部署在想同机器的不同端口上。
各个组件之间的关系如下图:
Mongodb通过shard key来确定某个document应该放在那个shard replica set上。shard key可以是collection的一个字段或多个字段的组合。shard key一旦指定,分片后,就不能在更改了,所以分片前一定要规划好。关于如何指定shard key,后面的示例说明。
如果分片的时候collection不为空,那一定要保证该collection有shard key的索引。
选择合适的shard key对程序的性能、扩展性有很大的影响。
Mongodb目前支持2中分片策略:Hashed Sharding,Ranged Sharding。具体后续文章介绍。
Mongodb将分片数据放入chunk中,Mongodb将每个chunk均匀分布在shard集群中。
标签:cti 方案 行数据 示例 开始 客户端连接 应该 mongod set
原文地址:http://www.cnblogs.com/seastar1989/p/7510959.html