在mongodb里面存在另一种集群,就是分片技术,跟sql server的表分区类似,我们知道当数据量达到T级别的时候,我们的磁盘,内存就吃不消了,针对这样的场景我们该如何应对。

  一:分片

  mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片上的一种解决方案。

  下面我对这张图解释一下:

  人脸:代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。

  mongos:首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据和片的对应关系以及相应的配置信息保存在"config服务器"上。

  mongod:一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。

  二: 实战

  首先我们准备4个mongodb程序,我这里是均摊在C,D,E,F盘上,当然你也可以做多个文件夹的形式。

  1:开启config服务器

  先前也说了,mongos要把mongod之间的配置放到config服务器里面,理所当然首先开启它,我这里就建立2222端口。

  2: 开启mongos服务器

  这里要注意的是我们开启的是mongos,不是mongod,同时指定下config服务器,这里我就开启D盘上的mongodb,端口3333。

  3:启动mongod服务器

  对分片来说,也就是要添加片了,这里开启E,F盘的mongodb,端口为:4444,5555。

  4: 服务配置

  哈哈,是不是很兴奋,还差最后一点配置我们就可以大功告成。

  <1> 先前图中也可以看到,我们client直接跟mongos打交道,也就说明我们要连接mongos服务器,然后将4444,5555的mongod交给mongos,添加分片也就是addshard()。

  这里要注意的是,在addshard中,我们也可以添加副本集,这样能达到更高的稳定性。

  <2>片已经集群了,但是mongos不知道该如何切分数据,也就是我们先前所说的片键,在mongodb中设置片键要做两步

  ①:开启数据库分片功能,命令很简单 enablesharding(),这里我就开启test数据库。

  ②:指定集合中分片的片键,这里我就指定为person.name字段。

  5: 查看效果

  好了,至此我们的分片操作全部结束,接下来我们通过mongos向mongodb插入10w记录,然后通过printShardingStatus命令查看mongodb的数据分片情况。

   这里主要看三点信息:

    ① shards:我们清楚的看到已经别分为两个片了,shard0000和shard0001。

    ② databases:这里有个partitioned字段表示是否分区,这里清楚的看到test已经分区。

    ③ chunks:这个很有意思,我们发现集合被砍成四段:无穷小 —— jack0,jack0 ——jack234813,jack234813——jack9999,jack9999——无穷大。分区情况为:3:1,从后面的 on shardXXXX也能看得出。

1
0
 
 
转载 自 http://www.cnblogs.com/huangxincheng/

mongodb 在windows下面进行分片的更多相关文章

  1. Mongodb在Windows 7下的安装及配置

    第一步 下载MongoDB: 下载mongodb的windows版本,有32位和64位版本,根据操作系统情况下载,下载地址:http://www.mongodb.org/downloads 解压缩至指 ...

  2. mongoDB在windows下安装与配置方案

    首先在官网下载mongoDB的安装包: https://www.mongodb.org/downloads 百度云盘下载:http://pan.baidu.com/s/1slUSGYp (安装版 wi ...

  3. 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)

    原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica  Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...

  4. Mongodb在Windows上的配置

    1.打开mongodb的官网:https://www.mongodb.org/进行下载相应平台的安装包 2.我们选择最新版的3.2版本来下载,选择对应的操作系统版本来下载,这里选择windows Mo ...

  5. mongoDB在windows下基于配置文件的安装和权限配置方式

    下载mongoDB  http://www.mongodb.org/downloads 根据操作系统,选择需要下载的安装包 添加mongodb 安装目录 将解压的文件夹中内容拷贝,存放在想要安装的文件 ...

  6. Install MongoDB on Windows

    Overview Use this tutorial to install MongoDB on a Windows systems. PLATFORM SUPPORT Starting in ver ...

  7. Mongodb在Windows下安装及配置 【转】

    1.下载mongodb的windows版本,有32位和64位版本,根据系统情况下载,下载地址:http://www.mongodb.org/downloads 2.解压缩至E:/mongodb即可 3 ...

  8. Install MongoDB on Windows (Windows下安装MongoDB)

    Install MongoDB on Windows Overview Use this tutorial to install MongoDB on a Windows systems. PLATF ...

  9. PHP学习之-Mongodb在Windows下安装及配置

    Mongodb在Windows下安装及配置 1.下载 下载地址:http://www.mongodb.org/ 建议下载zip版本. 2.安装 下载windows版本安装就和普通的软件一样,直接下一步 ...

随机推荐

  1. new 、 delete 、 malloc 、 free 关系

    1.new . delete . malloc . free 关系 delete 会调用对象的析构函数 , 和 new 对应, free 只会释放内存, new 调用构造函数. malloc 与 fr ...

  2. 把elipse非maven的Struts2+Spring+Ibatis项目导入Idea中

    1.按图示操作 2.选中自己要得到的项目 3.之后设定得到的项目放在哪里 项目得到之后,对项目点击右键Open Module Settings,点击Project,设置生成的编译文件存储路径 4.单击 ...

  3. Javaweb分页功能简单实现

    效果如下图 数据库中的数据                                                                页面效果 首先,创建一个通用类Page,代码及 ...

  4. Android笔记: ViewPager基本用法

    ViewPager控件可以实现多个View(或fragment)滑动切换的效果,属于比较常用的控件.下面用一个简单的例子介绍一下该控件的基本用法. 首先是布局文件activity_view_pager ...

  5. Python学习笔记3

    __slots__ 如果我们想要限制class的属性怎么办?比如,只允许对Student实例添加name和age属性. 为了达到限制的目的,Python允许在定义class的时候,定义一个特殊的__s ...

  6. grep Pocket Reference读记

    1 简介 grep的基本命令格式如下:           grep [options] [regexp] [filename]   如果regexp中含有空格,应该使用单引号或双引号括起来.单引号和 ...

  7. JS函数参数

    1.js不是面向对象,不可以重载函数.如果两个函数方法名相同,参数不同,那么js加载时后面的函数会覆盖前面的函数. 所以调用函数时只会调用后面的方法. 2.js设置可变参数时,可以用arguments ...

  8. Windows下mysql忘记root密码

    1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 打开第一个cmd窗口,切换到mysql的bin目录,运行命令: mysql ...

  9. jQuery对象和DOM对象和字符串之间的转化

    jQuery对象和DOM对象和字符串之间的转化 字符串---------->jQuery对象 $(HTML字符串): $('<div>我是祖国的一朵小花</div>') ...

  10. Day-6: 函数式编程

    函数式编程就是封装成一个个函数,一次调用来完成复杂任务. 函数式编程的一个特点是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 高阶函数 高阶函数就是将函数的变量名作为参数传入,内部再对 ...