MongoDB分片集群机制及原理

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. 小结    * 分盘集群可以有效解决性能瓶颈及系统扩容问题    * 分片额外消耗较多,管理复杂,尽量不要分片
点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

MongoDb分片集群认证

本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html),MongoDb分片集群认证几个主要流程1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFi

MongoDB Sharding 分片集群配置理论

分片集群  MongoDB的分片集群由以下部分组成:_shard_(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fdocs.mongodb.com%2Fmanual%2Fcore%2Fshardedclustershards%2F): 用来存储数据,为这个分片

MongoDB DBA 实践8

在Linux系统中,主要是使用命令行进行mongodb的分片集群部署一、先决条件  mongodb安装成功,明确路径,MongoDB的几个路径:1./var/lib/mongodb2./var/log/mongodb3./etc/mongod.conf4.usr/bin/二、分片部署