Mongodb 知识点

171 阅读2分钟

mongodb属于内存型存储数据,存储格式为json文档 mongodb集群模式分为:主从集群、分片集合

主从集群的副本集方案:

1.分为主副本+从副本模式,支持一主多从 2.副本间的同步机制:oplog、心跳机制、选举机制、副本回滚 3.读写模式:主副本读写、主写制定从副本读

oplog:主副本会对写命令做保存,后续新增副本和重上线副本可以进行数据更新; 心跳机制:集群间通过tcp检测连通性; 选举机制:集群副本数/2 +1 的数量进行选举。一般集群采用奇数个组成; 副本回滚:掉线的旧主副本重新上线后,会同步写操作給集群副本。此时,新的主副本会告诉旧主副本其版本太旧,需要回滚;

分片集合:其中引入数据块和路由选择器概念 工作原理:其中数据块的大小是64M,超过后会分离出新数据块。 假设,分片集合有 ShardA 和 ShardB 2个分片。 业务请求一开始指向ShardA,当A的数据块超过B一定数量,其会将数据库复制迁移到ShardB已保持2个分片的的数据均衡。迁移完成后,相应数据库会通知conifg server进行配置更新,并删除原有块数据。

性能开销:块大小拆分会影响性能;数据迁移占用CPU和网络资源; 块何时拆分: 块大于64M时; 块何时迁移: 二者相差8块以上; 业务请求:mogos会进行请求分流 数据分流:块的迁移体现数据分流

存储引擎 WiredTiger 引擎 inMeMory 引擎 (内存引擎,适应:不需要数据持久化,有高性能读要求的场景:应用数据,系统数据)

WiredTiger 引擎: 性能好,能发挥多核效果; 锁粒度小,文档锁提供更高的并发及吞吐能力 压缩能力好,压缩空间消耗更小; 提供压缩算法,减少磁盘空间使用

Journaling日志功能 mongodb 2.4之后默认开启,类似redis的aof持久化。对增,删,改都有记录写入日志中。在重新启动mongo时会检查是否需要恢复数据。 但是Journaling日志写入的过程,是会影响到性能。

mongodb组合使用方案: inMemory 作为读取节点,其不可升级为主节点。与WiredTiger引擎的mongodb副本一起组成副本集。