位置: 编程技术 - 正文

MongoDB的分片集群基本配置教程(mongodb的分片集群的组成部分)

编辑:rootadmin

推荐整理分享MongoDB的分片集群基本配置教程(mongodb的分片集群的组成部分),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb分片的作用,mongodb对已有的数据分片,mongodb分片集群原理,mongodb分区分片,mongodb分片的工作原理,mongodb的分片集群需要哪三个重要组件,mongodb的分片集群的组成部分,mongodb分片集群原理,内容如对您有帮助,希望把文章链接给更多的朋友!

为何要分片1.减少单机请求数,降低单机负载,提高总负载2.减少单机的存储空间,提高总存空间。

常见的mongodb sharding 服务器架构

要构建一个 MongoDB Sharding Cluster,需要三种角色:1.Shard Server即存储实际数据的分片,每个Shard可以是一个mongod实例,也可以是一组mongod实例构成的Replication Set。为了实现每个Shard内部的auto-failover(自动故障切换),MongoDB官方建议每个Shard为一组Replica Set。2.Config Server为了将一个特定的collection存储在多个shard中,需要为该collection指定一个shard key(片键),例如{age: 1} ,shard key可以决定该条记录属于哪个chunk(分片是以chunk为单位,后续会介绍)。Config Servers就是用来存储:所有shard节点的配置信息、每个chunk的shard key范围、chunk在各shard的分布情况、该集群中所有DB和collection的sharding配置信息。3.Route Process这是一个前端路由,客户端由此接入,然后询问Config Servers需要到哪个Shard上查询或保存记录,再连接相应的Shard进行操作,最后将结果返回给客户端。客户端只需要将原本发给mongod的查询或更新请求原封不动地发给Routing Process,而不必关心所操作的记录存储在哪个Shard上。(所有操作在mongos上操作即可)

配置分片服务器下面我们在同一台物理机器上构建一个简单的 Sharding Cluster:

1.步骤一: 启动Shard Server

步2.骤二: 启动Config Server

注意,这里我们完全可以像启动普通mongodb服务一样启动,不需要添加—shardsvr和configsvr参数。因为这两个参数的作用就是改变启动端口的,所以我们自行指定了端口就可以3.步骤三: 启动Route Process./bin/mongos --port --configdb localhost: --fork --logpath /usr/local/mongodb/data/shard/log/route.log --chunkSize=1 # 启动Route Server实例mongos启动参数中,chunkSize这一项是用来指定chunk的大小的,单位是MB,默认大小为MB,为了方便测试Sharding效果,我们把chunkSize指定为 1MB。意思是当这个分片中插入的数据大于1M时开始进行数据转移4.步骤四: 配置Sharding

注意这里我们要注意片键的选择,选择片键时需要根据具体业务的数据形态来选择,切不可随意选择,实际中尤其不要轻易选择自增_id作为片键,除非你很清楚你这么做的目的,具体原因我不在此分析,根据经验推荐一种较合理的片键方式,“自增字段+查询字段”,没错,片键可以是多个字段的组合。另外这里说明一点,分片的机制:mongodb不是从单篇文档的级别,绝对平均的散落在各个片上, 而是N篇文档,形成一个块"chunk",优先放在某个片上, 当这片上的chunk,比另一个片的chunk区别比较大时(>=3) ,会把本片上的chunk,移到另一个片上, 以chunk为单位,维护片之间的数据均衡。也就是说,一开始插入数据时,数据是只插入到其中一块分片上的,插入完毕后,mongodb内部开始在各片之间进行数据的移动,这个过程可能不是立即的,mongodb足够智能会根据当前负载决定是立即进行移动还是稍后移动。在插入数据后,立马执行db.users.stats();两次可以验证如上所说。这种分片机制,节省了人工维护成本,但是由于其是优先往某个片上插入,等到chunk失衡时,再移动chunk,并且随着数据的增多,shard的实例之间,有chunk来回移动的现象,这将会为服务器带来很大的IO开销,解决这种开销的方法,就是手动预先分片;

MongoDB的分片集群基本配置教程(mongodb的分片集群的组成部分)

手动预先分片以shop.user表为例:

通过mongos添加user数据. 数据会添加到预先分配好的chunk上, chunk就不会来回移动了.

repliction set and shard一般mongoDB如果真的到了分片的级别后,那片服务器避无可免的要用到复制集,部署的基本思路同上,只需要注意两点:sh.addShard( host ) server:port OR setname/server:port # 如果是复制集的片服务器,我们应该复制集的名称写在前面比如sh.addShard('ras/...:'); # 也就是复制集中的primary另外在启动本机的mongod服务的时候,最好把ip也给写进去,否则有可能会有不可预知的错误。

查看分片配置的方法:

1.列举使用分片的数据库为了列举使用分片的数据库,需要查询Config数据库。如果partitioned域值为true,则这个库使用了分片技术。连接一个mongos实例,运行命令获取使用分片功能的数据库:

例如:使用以下命令返回集群中的所有数据库

如果返回结果:

显示只有mydb使用了分片。

2.列举所有的分片为了列举当前集合的所有分片,使用listShards命令:

返回结果:

3.查看集群的详细信息为了查看集群的详细信息,可以使用db.printShardingStatus()或者sh.status()。所有的方法返回同样的结果。例如,使用

查看信息:

(1)sharding version展示了分片元数据的版本号。(2)shards展示了在集群中被作为分片的mongod实例。(3)databases展示了集群中所有的数据库,包括没有使用分片功能的库。(4)chunks信息展示了mydb库的每个分片上有多少个块和每个块的范围。

MongoDB的mongo shell常用操作方法及操作脚本笔记 一、常用命令1、Help查看命令提示helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help();2、切换/创建数据库useyourDB;当创建一个集合(table)的时候会自动创建

MongoDB的基础查询和索引操作方法总结 查询操作1、查询所有记录db.userInfo.find();相当于:select*fromuserInfo;2、查询去掉后的当前聚集集合中的某列的重复数据db.userInfo.distinct("name");会过滤掉name中

Mongodb自增id实现方法 本文实例讲述了Mongodb自增id实现方法。分享给大家供大家参考,具体如下:首先创建一个自动增长id集合idsdb.ids.save({name:"user",id:0});可以查看一下是否成

标签: mongodb的分片集群的组成部分

本文链接地址:https://www.jiuchutong.com/biancheng/312563.html 转载请保留说明!

上一篇:MongoDB的安装及配置文件选项全解(mongodb4.4.2安装教程)

下一篇:MongoDB的mongo shell常用操作方法及操作脚本笔记

  • 股东利润分配怎么做账
  • 子女继承父母房产最新政策2023
  • 应收留抵税额退税款属于哪类科目
  • 加计抵减不符合怎么办
  • 进口增值税完税证明
  • 个税系统经营所得如何添加人员信息
  • 专利年费是不是只能一项一项交
  • 建筑工程怎么确定施工工程进度
  • 异地销售存货如何确定纳税地点
  • 在建工程进项税额
  • 餐饮行业享受免增值税政策怎么开发票
  • 商铺租金收入交什么税一共多少个点
  • 会计账簿的定义及其作用
  • 企业转让专利技术需要交什么税
  • 单位为员工报销的博士学费算什么费用
  • 三板市场前世今生
  • 开了发票必须记收入吗
  • 长期待摊费用属于什么科目借贷方向
  • 购入生产使用的材料会计分录
  • 比赛奖金支出计入什么科目
  • 旅行社代订机票发票报销
  • 去年多确认收入今年怎么调整
  • 银行定期存款转存
  • kb4592438安装失败
  • 房屋租赁合同中租金大写
  • 企业雇佣临时工的工资属于工资薪金支出么
  • PHP:mcrypt_enc_is_block_mode()的用法_Mcrypt函数
  • 股权转让怎么交印花税2019年最新
  • 温哥华瀑布
  • php autoload用法
  • 小规模纳税人实收资本印花税怎么算
  • 两套账目
  • 太原市插画工作室
  • 浅谈socket同步和异步、阻塞和非阻塞、I/O模型
  • php 字符串处理函数
  • 应税货物及劳务无法录入
  • vue点击按钮显示对应的内容
  • 收到合同预付款怎么处理
  • 增值税专票只有右上角有发票号码
  • 委托加工代收代缴消费税分录
  • 净资产小于注册资本
  • 什么是投资收益率
  • 所得税视同销售行为有哪些呢?
  • sql server2014教程
  • 公司给员工的购房补贴
  • 月底库存现金可以有余额吗
  • 小规模纳税人销售自己使用过的物品
  • 已认证的增值税专用发票退票
  • 集团公司向下属发评先奖金合法吗
  • 个人垫付的费用如何向单位报销行政单位
  • 公司办理网银
  • 增值税的专用发票的相关规定
  • 培训公司会计账务处理
  • 电梯在固定资产里属于什么设备类别
  • 发出计价是什么意思
  • win7系统一键还原方法
  • amd furyx
  • vrvrf.exe是什么进程
  • win10商店是什么
  • 使用 WinSCP 管理 Linux VPS/服务器上的文件 图文教程
  • win7系统账户名怎么看
  • opengl绘制简单矩形代码
  • 给div设置滚动条
  • 十大经典排序算法总结
  • node 删除文件
  • Shell脚本监控日志 出现关键字 grep提醒
  • 使用jquery实现的项目
  • android局部界面切换
  • python基于django的项目
  • 汽车车船税收费标准表山西
  • 对税务领导的批示怎么写
  • 重庆市国税12366
  • 代扣社保代扣公式是什么
  • 特斯拉绿色牌照
  • 日常生活中有哪些税
  • 个人所得税如何办理退税
  • 上海市浦东新区人民医院
  • 怎么查询公司法人电话号码
  • 收购烟叶支付的价外补贴怎么处理
  • 电脑上怎样安装word文档
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设