分片集群中的分片集合
分片集群中的分片集合
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 个分块的时候,就会触发数据块迁移的动作
今天就到这里,学习所得,若有偏差,还请斧正
欢迎点赞,关注,收藏
朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是阿兵云原生,欢迎点赞关注收藏,下次见~
相关文章
- 一种使用 AWS 云原生服务部署高可用 APACHE AIRFLOW 集群的方案
- AWS ParallelCluster 3集成ANSYS CFD计算
- AWS 一周回顾 – 2022 年 8 月 1 日
- 金融交易行为监测方法——利用 CNN模型实现行为识别
- 【Python】Python数据分析一般概念01
- 使用Athena (Presto) 分析本地 Oracle 数据库导出的数据
- 利用ChangeStream实现Amazon DocumentDB表级别容灾复制
- 使用Alluxio优化EMR上Flink Join
- Feast on AWS 解决方案
- 多库多表场景下使用Amazon EMR CDC实时入湖最佳实践
- 2022 年亚马逊 Prime 会员日 – AWS 大胜!
- Java FileOutputStream
- 基于Amazon SageMaker构建细粒度情感分析应用
- 使用 Amazon Athena、Amazon EMR 和 AWS Glue 构建 Apache Iceberg 数据湖
- 对数据库中存储的程序进行现代化改造,以使用 Amazon Aurora PostgreSQL 联合查询、pg_cron 和 AWS Lambda
- 在 Amazon Athena 中使用 EXPLAIN 和 EXPLAIN ANALYZE 优化联合查询性能
- 我们如何将 AWS Snowcone 送入轨道
- 全新 – Amazon EC2 R6a 实例由第三代 AMD EPYC 处理器提供支持,适用于内存密集型工作负载
- AWS 一周回顾 – 2022 年 7 月 18 日
- Java SparseArray