MongDB适用场景
- 网站动态数据需要实时插入,更新和查询
- 高性能的持久化缓存层
- 存储大尺寸,低价值的数据
- 高伸缩性的集群场景
- 文档化结构的数据存储及查询
MongDB架构部署
- Primary 主服务器,写操作只能发生在这里,通过保存到日志(oplog),然后将数据同步到多个Secondary上
- Secondary 从主服务器上热备份,分担读的操作,当主宕机时,顶上
Sharding
- 分片将数据拆分,将其分散到不同服务器上的过程
- 通过分片增加更多的服务器,来应对负载
何时需要分片? - 机器磁盘不够用
- 单个db不能满足写数据的性能需求
将大量数据放入内存中提高性能
怎么样分片?指定一个key来进行分片,按key的范围将数据存放到多个chunk(块)上,每个chunk的大小有限制
- chunk分散保存在多个分片节点上
- 每个节点可以是单个mongod服务
- 当一个chunk超过限制时,会自动分裂两个小的chunk
- 如果chunk分片节点分布不均匀,会自动引发chunk迁移操作