•   MongoDB教程
  • MongoDB快速入门
  • MongoDB历史
  • MongoDB特点
  • MongoDB数据库的优点
  • MongoDB安装配置(Windows)
  • MongoDB安装配置(Ubuntu)
  • MongoDB安装配置(RedHat/CentOS)
  • MongoDB数据建模
  • MongoDB创建数据库
  • MongoDB删除数据库
  • MongoDB创建集合
  • MongoDB删除集合
  • MongoDB数据类型
  • MongoDB插入文档
  • MongoDB查询文档
  • MongoDB更新文档
  • MongoDB删除文档
  • MongoDB投影(选择字段)
  • MongoDB限制记录数
  • MongoDB排序记录
  • MongoDB索引
  • MongoDB聚合
  • MongoDB复制
  • MongoDB分片
  • MongoDB备份与恢复
  • MongoDB部署
  • Java连接MongoDB操作
  • Python连接MongoDB操作
  • PHP连接MongoDB操作
  • Ruby连接MongoDB操作
  • 高级部分
  • MongoDB关联关系
  • MongoDB数据库引用
  • MongoDB覆盖查询
  • MongoDB分析查询
  • MongoDB原子操作
  • MongoDB高级索引
  • MongoDB索引限制
  • MongoDB ObjectId
  • MongoDB Map Reduce
  • MongoDB文本搜索
  • MongoDB正则表达式
  • MongoDB GridFS
  • MongoDB固定循环集合
  • MongoDB自动递增序列
  • 用户及安全
  • MongoDB安全检查表
  • MongoDB认证
  • MongoDB用户
  • MongoDB添加用户
  • MongoDB启用身份验证
  • MongoDB管理用户和角色
  • MongoDB更改用户密码和自定义数据

MongoDB分片

分片是在多台机器之间存储数据记录的过程,MongoDB是满足数据增长需求的方法。 随着数据的大小增加,单个机器可能不足以存储所有数据,也不能提供可接受的读写吞吐量。 分片解决了水平缩放的问题。 使用分片,可以添加更多的机器来支持数据增长和读写操作的需求。

为什么要分片?

  • 在复制中,所有写入都转到主节点
  • 延迟敏感查询到主节点
  • 单个副本集合有12个节点的限制
  • 当活动数据集较大时,内存不足够大
  • 本地磁盘不够大
  • 垂直扩缩太昂贵了

MongoDB中的分片

下图显示了使用分片集群的 MongoDB 分片。

在上图中,有三个主要组件 -

  • 碎片(Shards) - 碎片用于存储数据。它们提供高可用性和数据一致性。 在生产环境中,每个分片是一个单独的副本集。

  • 配置服务器(Config Servers) - 配置服务器存储集群的元数据。 该数据包含集群的数据集与分片的映射。查询路由器使用此元数据将操作定位到特定的分片。 在生产环境中,分片集群正好有3个配置服务器。

  • 查询路由器(Query Routers) - 查询路由器基本上是 mongo 实例,与客户端应用程序的接口和直接操作到适当的分片。 查询路由器处理并将操作定向到碎片,然后将结果返回给客户端。 分片集群可以包含多个查询路由器来分割客户端请求负载。 客户端向一个查询路由器发送请求。 一般来说,分片集群有许多查询路由器。


上一篇:MongoDB复制下一篇:MongoDB备份与恢复