MongoDB提供三种集群形式来解决单点故障和海量数据存储问题
Master-Slaver 主从集群 | 主从副本模式,目前不推荐使用 |
Replica Set 副本集群 | 取代Master-Server,互为主从的关系,可解决单点故障 |
Sharding 分片集群 | 可以解决单点故障和海量数据存储问题 |
Replica Set副本集群
取代了主从模式,数据复制多份保存在不同服务器中,出现故障自动切换以实现故障转移
执行原理
集群包括主节点和副本节点(从节点)
主节点只能有一个,可以完成数据读写操作
副本节点可以有多个,只能完成读操作
多节点间有心跳检测并进行数据同步
主节点宕机后副本节点选取新的节点来当主节点
由于多个节点中存储的数据一样所以不能解决海量数据存储问题
Sharding分片集群
适合处理大量数据,将数据分开存储,不同服务器存储不同数据,所有服务器数据总和为整个数据集
内部结构
分片服务:用来存储数据,每个分片服务存储的数据都不同
配置服务:启动时会读取所有分片服务器信息存储到配置服务器,包含所有分片服务器的请求地址和端口等内容
路由服务:启动时会在配置服务中加载所有分片服务器配置信息,也是客户端的请求入口,客户端将请求发送到路由服务,路由服务根据一定的规则从分片服务中选择最恰当的服务器进行数据的存取