本文转载自:http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html

在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也能看得出。

转载于:https://www.cnblogs.com/wpcnblog/p/5586597.html

(转)mongodb分片相关推荐

  1. mongodb分片扩展架构

    目录 一.简介 二.分片集群 三.数据分布策略 四.Mongos访问模式 五.Config元数据 六.分片均衡 参考文档 一.简介 MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『 ...

  2. 搭建mongodb分片

    搭建mongodb分片 http://gong1208.iteye.com/blog/1622078 Sharding分片概念 这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在shardi ...

  3. 搭建MongoDB分片集群

    在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考. 计划如下: 用5台机器搭建,IP分别为:192.168.58.5.192.168.58.6.192.168.58.8.19 ...

  4. MongoDB 分片的原理、搭建、应用

    一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...

  5. mongodb 分片群集配置 及数据迁移

    配置mongodb分片群集(sharding cluster) Sharding cluster介绍 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monod ...

  6. mongodb 启动_精心总结--mongodb分片集群启动与关闭

    概述 网上教程有点坑啊,很多bug,今天刚好涉及到所以抽空整理了下mongodb分片集群启动与关闭方面的教程.希望对大家有点帮助. 基础环境配置 192.168.240.145 测试Nosql服务器1 ...

  7. MongoDb分片集群认证

    本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), Mong ...

  8. MongoDB 分片

    MongoDB 分片 高数据量(消耗内存)和高吞吐量(消耗CPU)的数据库应用会对单机的性能造成较大压力,为了解决这些问题,一般采用两种方法:水平扩展(将数据集分布在多个服务器上)和垂直扩展(增加更多 ...

  9. mongodb分片概念和原理-实战分片集群

    一.分片 分片是一种跨多台机器分发数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署. 问题: 具有大型数据集或高吞吐量应用程序的数据库系统可能会挑战单个服务器的容量.例如 ...

  10. 实战:MongoDB 分片集群Shard Cluster 搭建(1台路由节点,3台配置节点,9台分片节点)

    MongoDB 分片集群搭建(分片集群安全认证+SpringBoot访问) 一.搭建要求 一台路由节点 IP地址:192.168.80.110 端口:11111 三套复制集(每个分片节点中的复制集 都 ...

最新文章

  1. 最新计算机技能需求排名出炉:Python仅排第三,第一你猜得到吗?(附链接)...
  2. 【移动开发】Android中不用图片资源也能做出好看的界面
  3. rabitMQ优缺点
  4. EOS账户系统(5)action分级
  5. 编译原理实验语义分析_「编译原理」LL(1)文法分析,简单优先分析
  6. MyBatisPlus_AR篇_入门试炼_06
  7. 小米新机“Davinci”跑分曝光: 单核成绩达2574分
  8. 查看mysql的安装信息
  9. skimage exposure模块解读
  10. Bailian4121 股票买卖【最值】
  11. [Hbase]Hbase知识大全
  12. Ubuntu安装JDK教程
  13. 抱米花-豆丁文档下载器 20100529
  14. WPS公式编辑器快捷键
  15. 微信小程序——车牌键盘组件实现
  16. 高斯噪声/白噪声/高斯白噪声的区别
  17. oracle中spool命令的使用,Oracle中Spool命令的使用方法实例
  18. Fitnesse 入门一: 安装和启动
  19. mongodb near java_简阅MongoDB JVM开发库
  20. c语言 建立一个企业人事工资系统并能够实现工资的信息管理系统,工资管理系统的设计与实现...

热门文章

  1. Android WebView访问SSL证书网页(onReceivedSslError)
  2. 如何彻底卸载mysql(xp)
  3. 那些年,我们一起学过的汇编----之伪指令
  4. Widgets 整理
  5. PowerBuilder 11.x 的重要进步和不足
  6. iOS UITextView 随键盘弹出界面上移
  7. Java多线程编程实战:模拟大量数据同步
  8. (一)Android Studio 安装部署 华丽躲坑
  9. nodejs原生模块简介
  10. iOS9应用隐私控制-外部调用