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


  • 相关阅读:
    为什么前后端分离了,你比从前更痛苦?
    HTML命名规范
    常用一屏自适应布局(一)
    CSS-网站导航栏标题之间的分隔符
    React-setState源码的理解
    如何在React-Native上使用Typescript
    immutable-js基础
    stylus 移动端边框1像素问题解决方案
    react native ts环境搭建
    react结合ts与mobx环境搭建步骤详解
  • 原文地址:https://www.cnblogs.com/w3liu/p/12405609.html
Copyright © 2011-2022 走看看