MongoDB分片集群机制及原理

Wesley13
• 阅读 816
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. 完整的分片集群

        MongoDB分片集群机制及原理

    5. 分片集群解剖:路由节点mongos    * 提供集群单一入口    * 转发应用端请求    * 选择合适数据节点进行读写    * 合并多个数据节点的返回    * 无状态    * 建议至少两个6. 分片集群解剖:配置节点mongod    * 提供集群元数据存储    * 分片数据分布的映射        普通复制集架构    | Lower | Upper | Shard |    |-------|-------|-------|    | 0     | 1000  | Shard0 |    | 1001  | 2000  | Shard1 |    7. 分片集群解剖:数据节点mongod    * 以复制集为单位    * 横向扩展    * 最大1024分片    * 分片之间数据不重复    * 所有分片在一起才可以完整工作8. MongoDB分片集群特点    * 应用全透明,无特殊处理    * 数据自动均衡    * 动态扩容,无须下线    * 提供三种分片方式9. 分片集群数据分布方式    * 基于范围

        MongoDB分片集群机制及原理

    * 基于Hash

        MongoDB分片集群机制及原理

    * 基于zone / tag

        MongoDB分片集群机制及原理

10. 小结    * 分盘集群可以有效解决性能瓶颈及系统扩容问题    * 分片额外消耗较多,管理复杂,尽量不要分片
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
MongoDB分片(Sharding)技术
分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事。和MySQL分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同服务器之间的均衡。2.1MongoDB
Stella981 Stella981
3年前
MongoDb分片集群认证
本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html),MongoDb分片集群认证几个主要流程1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFi
Stella981 Stella981
3年前
MongoDB Sharding 分片集群配置理论
分片集群  MongoDB的分片集群由以下部分组成:_shard_(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fdocs.mongodb.com%2Fmanual%2Fcore%2Fshardedclustershards%2F): 用来存储数据,为这个分片
Wesley13 Wesley13
3年前
MongoDB DBA 实践8
在Linux系统中,主要是使用命令行进行mongodb的分片集群部署一、先决条件  mongodb安装成功,明确路径,MongoDB的几个路径:1./var/lib/mongodb2./var/log/mongodb3./etc/mongod.conf4.usr/bin/二、分片部署   
Stella981 Stella981
3年前
Mongodb集群搭建一篇就够了
本文主要介绍mongodb集群的搭建安装过程,对于学习mongodb的同学很有帮助,包括分片模式、复制集模式、是否启用认证等,本文选取mongodb3.6.3版本为例进行详细安装说明,其他版本搭建过程和本过程一样,只需按照本文说明操作即可。1.Mongodb分片集群架构
Wesley13 Wesley13
3年前
MongoDB 分片管理(一)检查集群状态
一、检查集群状态1.1使用sh.status()查看集群摘要信息1、使用sh.status()可以查看分片信息、数据库信息、集合信息sh.status()如果数据块较多时,使用sh.status(true)又是输出会很多,就不会截断,要使用如下查看2、tooman
Easter79 Easter79
3年前
Spring该如何整合Redis集群
前言:在上一文中,我讲到了如何搭建redis集群让集群拥有分片的数据内存的扩容和哨兵的高可用(https://my.oschina.net/u/4115134/blog/3210013)。今天给大家讲解一下Spring如何整合Redis集群在这里首先给大家说一说分片和哨兵的特点:1.分片的主要的作
Wesley13 Wesley13
3年前
MongoDB分片介绍
本文简单介绍MongoDB的分片功能,对分片进行了概述,具体的功能详解,后续文章会陆续推出分片是把数据分配到多个服务器上的一种方式,MongoDB使用分片实现大数据部署以及高吞吐操作。大数据以及高吞吐量的应用会对单个服务器的容量造成很大的挑战。比如,高频率的查询操作会消耗服务器的CPU,如果数据集大于系统的RAM容量,也会对硬盘的性能造成影响。应