这是一种将海量的数据水平扩展的数据库集群系统数据分表存储在sharding 的各个节点
上使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群。

MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录通
常最大尺寸是 200MB超出则生成新的数据块。

要构建一个 MongoDB Sharding Cluster需要三种角色

1、 Shard Server

即存储实际数据的分片每个Shard 可以是一个mongod 实例也可以是一组mongod 实例
构成的Replica Set。为了实现每个Shard 内部的auto-failoverMongoDB 官方建议每个Shard
为一组Replica Set。

2、 Config Server

为了将一个特定的collection 存储在多个shard 中需要为该collection 指定一个shard key
例如{age: 1} shard key 可以决定该条记录属于哪个chunk。Config Servers 就是用来存储
所有shard 节点的配置信息、每个chunk 的shard key 范围、chunk 在各shard 的分布情况、
该集群中所有DB 和collection 的sharding 配置信息。

3、Route Process

这是一个前端路由客户端由此接入然后询问Config Servers 需要到哪个Shard 上查询或
保存记录再连接相应的Shard 进行操作最后将结果返回给客户端。客户端只需要将原本
发给mongod 的查询或更新请求原封不动地发给Routing Process而不必关心所操作的记录
存储在哪个Shard 上。

下面我们在同一台物理机器上构建一个简单的 Sharding Cluster
架构图如下

创建数据目录和日志目录

启动Shard Server 实例1和实例2

启动Config Server

启动Route Process

mongos 启动参数中chunkSize 这一项是用来指定chunk 的大小的单位是MB默认大小
为200MB为了方便测试Sharding 效果我们把chunkSize 指定为 1MB。

配置Sharding

接下来我们使用MongoDB Shell 登录到mongos添加Shard 节点

验证Sharding正常工作

我们已经对test.users 表进行了分片的设置下面我们们插入一些数据看一下结果

我们看一下磁盘上的物理文件情况

看上述结果表明test.users 集合已经被分片处理了但是通过mongos 路由我们并感觉
不到是数据存放在哪个shard 的chunk 上的这就是MongoDB 用户体验上的一个优势即
对用户是透明的。

MongoDB实战(11)Sharding 分片(上)相关推荐

  1. MongoDB实战系列之五:mongodb的分片配置

    md01    10.0.0.11 md02    10.0.0.12 md03    10.0.0.14 2.启动三台机器的mongod实例 根据Replica Set.Sharding策略部署mo ...

  2. 【MongoDB】Sharding分片概念及原理

    面对海量的数据,如何提升数据读写效率?了解过DB的应该都知道数据库的分区,分区是主要提升数据查询的效率.面对海量数据的IO能力限制以及扩展性,Sharding是一个利器,我们不用关心具体的实现,从而实 ...

  3. FastDfs分片上传文件实战

    1.引入的依赖 <!--redis依赖配置--> <dependency><groupId>org.springframework.boot</groupId ...

  4. 【文件系统】uploader实战详解实现分片上传、秒传、续传等(1)

    文章目录 1.前端 1.1 uploader组件 1.2 测试分片上传与秒传 2.后端 2.1 test接口与正式接口 2.2 Service层 2.3 工具类介绍 2.4 演示 3.个人封装的upl ...

  5. php对接百度网盘开发平台API开发高级实战案例解析:(环境部署、php封装类、Access Token获取、预上传、分片上传)

    文章目录 前言 一.环境部署 1.封装BdPan类库 2.回调地址配置 二.获取授权码Code 1.手动获取Code 2.生成本地token 3.读取AccessToken凭证 4.爬虫函数 二.简化 ...

  6. mongodb移除分片删除分片上数据库和添加分片

    首先我们要移除的分片之后再次添加此分片时会出现添加失败的情况,需要在添加的分片上登录进行删除此分片之前数据库的历史数据比如testdb,删除分片上的数据库之后就可重新添加此分片到mongos中 1.执 ...

  7. MongoDB面试题(史上最全面试题,精心整理100家互联网企业,面试必过)

    最全面试题,精心整理100家互联网企业面经,祝你面试成功.面试必过(2023优化版)已发布在个人微信公众号[面向Offer学编程],优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结, ...

  8. mongodb更新某个字段_直播 | MongoDB开源数据库的云上之路

    本文转自阿里巴巴数据库技术 来了来了!就在今天(11月26号)阿里云-MongoDB战略合作发布会真的来了!一直被模仿从未没超越的开源界大牛MongoDB与亚太区云数据库TOP 1 阿里云数据库要联手 ...

  9. mongodb集群与分片的配置说明

    mongodb集群与分片的配置说明 Shardingcluster介绍: 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统. 系统分为需要三种角 ...

  10. 企业实战_14_MyCat跨分片查询_全局表

    接上一篇:企业实战_13_MyCat清除冗余数据 https://gblfy.blog.csdn.net/article/details/100057317 文章目录 一.跨分片查询验证 1. 登录m ...

最新文章

  1. OpenStack开源精神-让企业做到真正自主可控
  2. 2020\Simulation_1\5.数位递增的数
  3. concurrent map使用
  4. Docker发布应用程序指南
  5. javascript学习系列(22):数组中的reduceRight法
  6. php 对象 数量,php – Symfony2 / Doctrine如何在实体中存储相关对象的数量
  7. WEB超链分析算法纵览
  8. 程序员应学习蜡笔小新的心态
  9. docker-for-windows配置了阿里云镜像,仍然无法获得链接:(Client.Timeout exceeded while awaiting headers)
  10. mysql php状态函数_mysql常用的信息函数
  11. python aiml开发文档_Python AIML搭建聊天机器人
  12. Xcode图片素材Slicing处理(包括缩放和延伸)
  13. 南华大学计算机全国排名多少位,华南理工大学全国排名第几位
  14. BigCommerce vs WooCommerce,哪个更适合跨境电商开展业务?
  15. 端口号,UDP,TCP
  16. fatal: --author ‘minfg‘ is not ‘Name <email>‘ and matches no existing author
  17. excel中提取月份_在Excel中自动添加月份表
  18. 转载 在这里添文件夹无法打开和删除-“引用了一个不可用的位置”
  19. 【转】系统安全的最小特权原则
  20. HTML一条线匀速直线运动,百科趣题_答案_图是利用每秒闪光10次的照相装置分别拍摄到的四个小球的频闪照片,其中哪幅照片表示小球在做匀速直线运动...

热门文章

  1. coc部落冲突关联错误101解决方案
  2. vue+sentry 前端异常日志监控
  3. 纯 CSS 解决自定义 CheckBox 背景颜色问题
  4. 为什么base64编码的字符串的末尾有=符号
  5. 使用ffmpeg根据开始和结束时间剪切视频
  6. Eclipse / Java代码完成无法正常工作
  7. 使用HTML5 / Canvas / JavaScript拍摄浏览器内屏幕截图
  8. 如何在Ruby on Rails中获得当前的绝对URL?
  9. 曼秀雷敦搜索引擎营销方案_搜索引擎营销——被严重低估的互联网营销途径
  10. win11如何取消开机自检 windows11取消开机自检的设置方法