1. MongoDB常见的部署架构
* 单机版
* 复制集
* 分片集群

2. 为什么要使用分片集群
* 数据容量日益增大,访问性能日渐下降,怎么破?
* 新品上线异常火爆,如何支撑更多用户并发?
* 单库已有10TB数据,恢复需要1-2天,如何加速?
* 地理分布数据

3. 分片如何解决问题?
银行交易表单内10亿笔资料超负荷运转,交易号 0-1,000,000,000

把数据分成两两半,放到两个库里。

交易号:0-500,000,000

交易号:500,000,001-1,000,000,000

mongodb 最多可以分成1024片

4. 完整的分片集群



5. 分片集群解剖:路由节点mongos
* 提供集群单一入口
* 转发应用端请求
* 选择合适数据节点进行读写
* 合并多个数据节点的返回
* 无状态
* 建议至少两个
6. 分片集群解剖:配置节点mongod
* 提供集群元数据存储
* 分片数据分布的映射

普通复制集架构
| Lower | Upper | Shard |
|-------|-------|-------|
| 0 | 1000 | Shard0 |
| 1001 | 2000 | Shard1 |

7. 分片集群解剖:数据节点mongod
* 以复制集为单位
* 横向扩展
* 最大1024分片
* 分片之间数据不重复
* 所有分片在一起才可以完整工作
8. MongoDB分片集群特点
* 应用全透明,无特殊处理
* 数据自动均衡
* 动态扩容,无须下线
* 提供三种分片方式
9. 分片集群数据分布方式
* 基于范围


* 基于Hash


* 基于zone / tag

10. 小结
* 分盘集群可以有效解决性能瓶颈及系统扩容问题
* 分片额外消耗较多,管理复杂,尽量不要分片

MongoDB分片集群机制及原理的更多相关文章

  1. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  2. MongoDB分片集群原理、搭建及测试详解

    随着技术的发展,目前数据库系统对于海量数据的存储和高效访问海量数据要求越来越高,MongoDB分片机制就是为了解决海量数据的存储和高效海量数据访问而生. MongoDB分片集群由mongos路由进程( ...

  3. 搭建MongoDB分片集群

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

  4. 分布式文档存储数据库之MongoDB分片集群

    前文我们聊到了mongodb的副本集以及配置副本集,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13953598.html:今天我们来聊下mongodb的分片 ...

  5. mongodb分片集群

    第一章 1.mongodb 分片集群解释和目的 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合.复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础. 第二章 1. ...

  6. TiDB和MongoDB分片集群架构比较

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 M ...

  7. 网易云MongoDB分片集群(Sharding)服务已上线

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...

  8. CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群

    简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...

  9. Windows 搭建MongoDB分片集群(二)

    在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...

随机推荐

  1. springmvc中文件跨服务器传输的方法

    //1.首先在tomcat的新端口上重新开启一个tomcat服务器fileuploadserver服务器,并且在webapps下新建一个uploads文件夹 //2.在业务服务器上书写前端页面和后端的 ...

  2. 莫烦python教程学习笔记——数据预处理之normalization

    # View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...

  3. python自带性能强悍的标准库 itertools

    可迭代对象就像密闭容器里的水,有货倒不出 itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极 ...

  4. HTTP隧道解决的问题

    转自别人的文章:https://blog.csdn.net/gogzf/article/details/78385506 客户端通常会用 Web 代理服务器代表它们来访问 Web 服务器.比如,很多公 ...

  5. sctf_2019_easy_heap(off-by-null在2.27的利用)

    题目的例行检查我就不放了 将程序放入ida中 漏洞也较为明显 可以看到 if这里多一个null ,明显的off by null 漏洞 程序在最开始的地方给了我们一个很大的空间,并且权限是rwx,所以我 ...

  6. ciscn_2019_es_1

    拿到题目例行检查 将题目放到idax64中进行代码审计 主界面,我也没看懂什么意思 call 可以看到free的指针没有置零,存在uaf漏洞 add函数 show函数 该题的libc版本是2.27,所 ...

  7. 2020腾讯犀牛鸟网络安全T-Star高校挑战赛writeup

    签到 浏览器禁用js,在www目录下有 key 命令执行基础 使用 | 可以执行其他命令,在 ../目录下有 key.php cat 一下读出来 你能爆破吗 一开始随便输了个账号的时候不是这个页面,抓 ...

  8. C# VS 调试报错:未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项

    今天在使用 VS(VisualStudio) 调试一个复杂的 WinForm 程序,总是提示错误: 未能加载文件或程序集"Newtonsoft.Json, Version=4.5.0.0, ...

  9. 使用NTP原理进行时间同步

    在一些物联网企业,平台会和嵌入式一起配合进行工作. 有时平台会希望嵌入式这边不使用现成的NTP方案自己去同步时间,而希望以平台下发的时间为准. 此时就有两个方案. 方案1.  平台下发一个时间戳tim ...

  10. 设置项目的开始/完成日期(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 在设定完日程排定方法,或者不作任何设置,依其默认的[项目开始日期]的设置,接下来就要设置项目的开始时间了.依然是在[项目] ...