Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >分片集群中的分片集合

分片集群中的分片集合

作者头像
阿兵云原生
发布于 2023-02-16 03:32:19
发布于 2023-02-16 03:32:19
8520
举报
文章被收录于专栏:golang云原生newgolang云原生new

分片集群中的分片集合

MongoDB 中 分片集群有专门推荐的模式,例如 分片集合

它是一种基于分片键的逻辑对文档进行分组,分片键的选择对分片是非常重要的,分片键一旦确定,MongoDB 对数据的分片对应用是透明的

mongodb 分片中,有一个概念叫做数据块,默认一个数据块是 64 M ,这个也是可以配置的

他在 mongodb 中的 地位是这个样子的:

mongos 会将数据发送到 数据块中,实际上是 1 个 shard 分片对应多个数据块,也可以不对应数据块

例如上图,当一个数据块变大的时候,就会分成 2 个,慢慢的若数据块的数量多到一定的程度,就会发生快的迁移,识别和处理这个事情,都是平衡器进行处理的,例如

在数据块迁移的过程中,mogos 发送数据的方向还是不会变的,迁移的过程中,原来的数据块会先复制一个副本作为接收数据,实际的数据块继续迁移

例如块的迁移会有这样的规律:

  • 在块的个数,对比之后相差 1-20个,则会依次迁移 2 个
  • 若是 20 - 80 个,则会一次迁移 4 个
  • 若是 80 -无限多个,则会一次迁移 8 个

迁移的过程中,块的大小,块的数量都会影响我们分片集群的性能,

  • 若块的大小超过了我们的默认值,就需要拆,这就会影响性能
  • 搬迁的时候,对于网络资源的消耗 和 CPU 则会有影响

当搬迁完毕之后,相应数据块所在的分片就会通知 config server 更新配置,且原来复制的副本也会被删掉,此处 mogos 发送的数据,就会往新的一边进行发送

统一将上述涉及到的知识点梳理一下:

上述说到的分片集合,是因为数据量会越来越大,那么分片就会随之发生切割,和迁移的动作,这是为了满足在 mongodb 里面进行均匀分布

  • mogos 是会进行请求分流

是通过路由节点来将不同的请求分发到不同的分片和块中

  • 数据也是会分流

数据分流,主要还是说数据均匀分布,内部有一个平衡器进行保证

  • 块何时会拆分呢?

默认的快大小是 64 M,若我们的块数据超过这个值就会触发拆分

  • 数据块迁移什么时候会触发?

迁移的目的还是为了分片在集群中均匀分布,所以数据块会发生迁移,一般是在集群中分片相差 8 个分块的时候,就会触发数据块迁移的动作

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿兵云原生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MongoDB分片迁移原理与源码(1)
单个节点的MongoDB实例,具备MongoDB基本的功能和服务能力,不过缺乏数据冗余和高可用,以及横向扩展的能力,一般很少在实际生产环境中使用。
云计算与数据库
2020/04/01
1.3K0
Mongodb分片集群部署
对于单台数据库服务器,庞大的数据量及高吞吐量的应用程序对它而言无疑是个巨大的挑战。频繁的CRUD操作能够耗尽服务器的CPU资源,快速的数据增长也会让硬盘存储无能为力,最终内存无法满足数据需要导致大量的I/O,主机负载严重。为了解决这种问题,对于数据库系统一般有两种方法:垂直扩展和分片(水平扩展)。
拓荒者
2019/09/10
2K0
Mongodb分片集群部署
MongoDB 分片管理
一分片一区间:数据不会在片之间自动移动来保持分片的数据的均匀性,需要手动拆分分片来移动数据。
拓荒者
2019/09/12
1.1K0
MongoDB 分片管理
MongoDB 分片集群部署
在生产环境中,通常情况使用副本集就够了(使用配置文件部署副本集可跳转:5.x 副本集部署,使用命令行部署副本集可参考这篇文章)。除非容量非常大,并发访问非常高,副本集已经无法正常提供服务时,才建议考虑使用分片。这一节内容就来聊聊 MongoDB 分片。
数据库交流
2022/04/25
1.6K0
MongoDB 分片集群部署
MongoDB 分片集群技术
---- 在了解分片集群之前,务必要先了解复制集技术! ----  1.1 MongoDB复制集简介   一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。 1.1.1 复制集的目的   保证数据在生产部署时的冗余和可靠性,通过在不同的机器上保存副本来保证数据的不会因为单点损坏而丢失。能够随时应对数据丢失、机器损坏带来的风险。   换一句话来说,还能提高读取能力,用户的读取服务器和写入服务器在不同的地方,而且,由不同的
惨绿少年
2018/03/30
2.5K0
MongoDB之balancer(1)
在MongoDB中,balancer(平衡器)是一个后台进程,它监控每个shard上的chunk数量,一旦chunk的数量差异超过了阈值,balancer会自动迁移数据块,从而保证每个分片上chunk数量的相对平衡。
AsiaYe
2021/02/07
1.3K0
使用MongoDB进行分片
本文档回答了有关分片的常见问题。或者可以参考手册的分片章节,其提供了 分片的概述,包括如下细节:
MongoDB中文社区
2019/05/15
1.2K0
使用MongoDB进行分片
MongoDB 6.0.3分片Sharding与平衡策略的变化
MongoDB 的分片是一种水平扩展技术,用于将大型数据集分割成更小的部分,分布在网络中的多个服务器(即分片)上,以提高性能和可扩展性。分片机制的核心是将数据块(chunks)分散到不同的分片上,以便实现负载均衡。
DBA实战
2024/09/06
1320
MongoDB 6.0.3分片Sharding与平衡策略的变化
MongoDB 分片
当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。
为为为什么
2024/09/28
2090
MongoDB 分片
MongoDB 存储引擎
上次我们说到了关于 mongodb 的集群,分为主从集群和分片集群,对于分片集群中的分片这里需要注意如下几点,一起来回顾一下:
阿兵云原生
2023/02/16
6310
Elasticsearch和MongoDB分片及高可用对比
如果主分片和副本分片都集中在一个节点上,那是没办法做到高可用的。ES的集群监控状态会返回yellow。因此,我们需要启动更多的节点来承载副本分片。
哲洛不闹
2018/12/28
1.5K0
Elasticsearch和MongoDB分片及高可用对比
数据库高可用和分区解决方案-MongoDB 篇
许春植(Luocs) (阿里巴巴高级数据库管理员,7年以上数据库运维管理经验,擅长MySQL、Oracle及MongoDB数据库,目前主要研究并建设MongoDB一套完整的运维体系) 编辑手记:感谢许春植授权独家转载其精华文章,也欢迎读者朋友向我们投稿。 MongoDB 是当前比较流行的文档型数据库,其拥有易使用、易扩展、功能丰富、性能卓越等特性。MongoDB 本身就拥有高可用及分区的解决方案,分别为副本集(Replica Set)和分片(sharding),下面我们主要看这两个特性。 1. 副本
数据和云
2018/03/05
4.1K0
数据库高可用和分区解决方案-MongoDB 篇
MongoDB分片迁移原理与源码(2)
下面将从源码角度分析与迁移相关的若干过程,源码基于MongoDB-4.0.3版本。
云计算与数据库
2020/04/04
1.2K0
MongoDB 分片集群
之前说到了主从集群,关于主从集群的搭建以及细节后面会再次分享,这次我们先初步来看看 分片集群
阿兵云原生
2023/02/16
5980
IT运维面试问题总结-数据库、监控、网络管理(NoSQL、MongoDB、MySQL、Prometheus、Zabbix)
NoSQL,指的是非关系型的数据库。NoSQL 有时也称作 Not Only SQL(意即"不仅仅是SQL") 的缩写,其显著特点是不使用SQL作为查询语言,数据存储不需要特定的表格模式。
杰哥的IT之旅
2020/10/23
1.3K0
百亿级MongoDB分片集群架构改造
一、问题背景二、集群架构介绍三、MongoDB集群分片键修改方案介绍1、原生MongoDB如何修改分片键?2、数据同步方案解决分片键问题3、MongoDB数据同步工具选型4、业务流量切换四、集群架构改造后的收益五、遇到的问题及解决办法(Q&A)六、总结&优化
AsiaYe
2021/10/14
1.5K0
MongoDB是什么?看完你就知道了!
MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。
java思维导图
2019/07/23
8850
MongoDB权威指南学习笔记(3)--复制和分片
使用mongo –nodb选项启动mongo shell,启动shell但是不连接到任何mongod
earthchen
2020/09/24
1.4K0
mongodb分片模式分片键的选择
分片就是一种把数据分布在多台机器上的方法。mongodb使用分片来支持大数据量、高吞吐量的布署。
山行AI
2019/06/28
6.5K0
MongoDB 主从集群 1
说到集群,生产环境中很多服务都会进行集群部署,那么 mongodb 的集群都有哪些知识点需要掌握呢
阿兵云原生
2023/02/16
4690
相关推荐
MongoDB分片迁移原理与源码(1)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档