MongoDB是一个高性能,开源,无模式的文档型数据库,开发语言是C ++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。
优点:
1.面向集合存储,易存储对象类型的数据。
2.支持动态查询。
3.支持完全索引,包含内部对象。
4.使用高效的二进制数据存储,包括大型对象(如视频等)。
缺点:
1. mongodb不支持事务操作。
2. mongodb占用空间过大。(在集群分片中的数据分布不均匀)
3.大数据量持续插入,写入性能有较大波动
4.单机可靠性比较差
适用场景:
1.适用于实时的插入,更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;
2.非常适合文档化格式的存储及查询;
3.高伸缩性的场景:MongoDB非常适合由数十或者数百台服务器组成的数据库。
4.对性能的关注超过对功能的要求。
搭建MongoDB的需要的了解的概念
我们先了解什么是复制集
replica set(复制集)
最基础的复制集架构是由三个成员组成的,且成员个数应该是奇数,包括一个主节点(主),一个从节点(二次),还有一个投票节点(仲裁器)。投票节点的作用仅仅是在选举过程中参与投票,该节点中并不包含数据集,故所需资源很少,无需一个专用物理机。主节点和从节点的数据相同,用以备份数据,当主机宕机时,仲裁节点将投票,选出一个从节点做主节点。
碎片(分片)
我们再来看一张图
从图中可以看到有四个组件:mongos,config server,shard,replica set。
mongos,集群请求的入口,分发读写请求到分片服务器,前端应用透明访问。
配置服务