MongoDB-2-分片

shard - 产生原因

一个数据库集合数据量过大时,一台机器可能无法满足用户对其存储量读写吞吐量需求。考虑分割数据库和集合中的数据,将其分摊到多个服务器。

shard - 概念

  • 动词

    将数据库拆分,将其分散在不同的机器上的过程

  • 名词

    服务器中实际存储的,数据库(或集合)分割成的 数据集。

shard - 实现原理

img

  • Query Routers:
    • 定义:路由服务器,即mongos。
    • 功能:起路由的功能,本身不保存数据供客户端连接,使得整个集群从客户端角度看上去像单一数据库。
    • 启动:在启动时从配置服务器加载集群信息.开启mongos进程需要知道配置服务器的地址,指定configdb选项。
    • 使用:为确保高可用性,一般会配置至少一台备份mongos路由。
  • Config Server:
    • 定义:配置服务器,一个独立的mongod进程
    • 功能:启用日志功能,保存集群和分片的元数据,保存的只是数据的分布表(各分片包含了哪些数据的信息)(不需要太多的空间和资源,配置服务器的1KB空间相当于真是数据的200MB)。
    • 启动:像启动普通的mongod一样启动配置服务器,指定configsvr选项。
    • 使用:为了保持集群的高可用,一般会配置至少一台备份配置服务器。配置服务器必须开启1个或则3个,开启2个则会报错。
    • 特点:当服务不可用,则变成只读,无法分块、迁移数据。
  • Shard:
    • 定义:服务器中实际存储的,数据库(或集合)分割成的 数据集
    • 功能:解决 “数据库数据量过大,超过服务器存储量读写吞吐量能力” 的问题
    • 使用:实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障。
  • 分片服务器
    • 定义:保存分片数据的服务器,是一个独立普通的mongod进程
    • 功能:保存shard数据信息。
    • 使用:为保持高可用型,往往有很多副本。
  • 均衡器
    • 功能:通过数据迁移保持分片均衡。周期性的检查分片是否存在不均衡,如果不均衡则开启块的迁移。
    • 使用:
      • config.locks集合里的state表示均衡器是否找正在运行,0表示非活动状态,2表示正在均衡。
      • 均衡迁移数据的过程会增加系统的负载:目标分片必须查询源分片的所有文档,将文档插入目标分片中,再清除源分片的数据。可以关闭均衡器(不建议)。
      • 关闭均衡器会导致各分片数据分布不均衡,磁盘空间得不到有效的利用。

shard - 启动过程

这些服务,因为在后台运行,所以用配置文件启动

  1. 启动Shard Server(不一定在最开始启动)
  2. 启动Config Server(先于Route Process启动)
  3. 启动Route Process
  4. 配置Sharding

参考文献

http://www.mongodb.org.cn/tutorial/21.html shard - MongoDB中文教程

https://www.cnblogs.com/zhoujinyi/p/4635444.html MongoDB 分片的原理、搭建、应用 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值