MongoDB 分布式 概述

原文链接: 百度安全验证

未整理好,以下仅仅为关键内容笔记

MongoDB 中常用的分布式架构

1、Replica Set 副本集模式:一个 Primary 节点用于写入数据,其它的 Secondary 节点用于查询数据

2、Sharding 分片模式:将不同的数据分配在不同的机器中,也就是数据的横向扩展

Sharding 分片模式

分片(shard):每个分片包含一部分分片数据。每个分片可以部署为一个副本集;

MongoDB 在集合级别分片数据,将收集数据分布在集群中的各个分片上。

MongoDB 使用分片键在各个分片之间分发集合中的文档。分片键由文档中的一个或多个字段组成。

集合必须有一个以分片键开头的索引,如果集合本身没有对应的索引,在指定分片的时候会创建对应的索引。

MongoDB 的分片集群,数据会被均匀的分布在不同的 shard 中,对于每一个 shard 中的数据,是存储在一个个的 chunk 中的,每个 chunk 代表 shard 中的一部分数据。

简单就是使用 chunk 存储数据,方便集群进行数据在分片集群中进行数据的均衡迁移操作。

chunk 的大小选择很重要,集群默认的大小是 64 兆,可以根据业务大小进行调节。

较小的 chunksize

优点:数据均衡和迁移速度快,数据分布更均匀;

缺点:数据分裂频繁,路由节点消耗更多资源。

较大的 chunksize

优点:数据分裂少;

缺点:数据块移动集中消耗IO资源。

分片的算法

哈希分片

哈希分片会计算分片键字段值的哈希,然后根据哈希分片键值,每个块分配一个范围。

范围分片

MongoDB 中分片键划分数会根据数据范围,将不同范围内的数据划分到不同的分片中,同一个范围内的数据就能够分布在同一个分片中了。

相关推荐
gQ85v10Db1 小时前
Redis分布式锁进阶第十八篇:本地缓存+分布式锁双锁架构 + 高并发削峰兜底 + 极致性能无损优化实战
redis·分布式·缓存
小江的记录本2 小时前
【Kafka核心】Kafka高性能的四大核心支柱:零拷贝、批量发送、页缓存、压缩
java·数据库·分布式·后端·缓存·kafka·rabbitmq
gQ85v10Db2 小时前
Redis分布式锁进阶第十四篇:全系列终局架构复盘 + 锁体系统一规范 + 线上全年零事故收官方案
redis·分布式·架构
KmSH8umpK2 小时前
Redis分布式锁进阶第十二篇
数据库·redis·分布式
gQ85v10Db3 小时前
Redis分布式锁进阶第十六篇:番外高阶避坑篇 + 隐性埋点锁故障深挖 + 疑难杂症终极兜底方案
数据库·redis·分布式
KmSH8umpK4 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第九篇
数据库·redis·分布式
gQ85v10Db4 小时前
Redis分布式锁进阶第十五篇:全系列终极收官复盘 + 全站锁规范归档 + 生产零故障长期运维兜底总方案
运维·redis·分布式
_F_y4 小时前
仿RabbitMQ实现消息队列-服务端核心模块实现(5)
分布式·rabbitmq
Lyyaoo.5 小时前
Redis实现分布式锁
数据库·redis·分布式
KmSH8umpK15 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式