1、单点问题分析

1、单点故障

单一MongoDB提供服务,在服务器宕机时,会造成整个应用崩亏

2、海量数据存储

单一MongoDB,并不支持海量数据存储

 

解决方案:

集群概念:

 

Master-Slaver(主从集群):是一种主从副本的模式,目前已经不推荐使用。

 

Replica Set(副本集群):模式取代了Master-Slaver模式,是一种互为主从的关系,可以解决单点故障问题。

 

Sharding(分片集群):可以解决但带你故障和海量数据存储问题。

 

 

2、副本集群

执行原理:

1、包含主节点和副节点/从节点

2、主节点只能有一个,可以完成数据读写操作

3、副本节点可以有多个,只能完成读操作

4、多节点间有心跳检测,并进行数据同步

5、主节点宕机后,副本节点选举新的主节点

 

总结:

1、单点故障

2、使用于中小型应用(数据量适中)

3、故障转移

4、读写分离

 

 

3、分片集群

内部结构:

1、分片服务

2、配置服务

3、路由服务

 

注意事项:为了保证每个服务的高可用,需要服务配置副本集群。

 

分片策略:

MongoDB通过分片策略,决定数据存储的分片服务器。mongodb有两种分片策略,根据集合字段来指定

1、范围指定

将指定字段的数据按照范围进行划分,根据范围获取分片服务器

 

2、数据Hash

将指定字段的数据进行Hash计算,获取存储的分片服务器

 

总结:

1、支持海量数据存储

2、分片集群内部结构

3、分片策略