分布式指存储高可用
@
一、存储高可用的理解
- 概念
- 存储高可用主要指的是数据库的高可用。
二、主备方案
- 概念
-
主备方案指的是在原有系统基础上增加一个备用数据库;如图:
当客户端发送请求,系统收到请求后,再去数据库[主机],由于某种原因数据库[主机]所在的系统出现宕机,导致数据库[主机]不可用;这时我们就启用另一台主机上数据库读取或存储数据。
-
- 前提
- 请求并发量小的时候可以使用该方案。
- 场景
- 适合访问量小和数据量的场景。
三、主从方案
- 概念
-
主从方案主要是应对数据的读大于写的场景;如图:
当客户端发送写数据请求到服务端,服务端接收到请求并将数据写入到主库中,并且将数据同步到从库中;当查询数据的并发量大的时候,不仅能从主库查询数据,而且还能从从库中查询数据。
-
- 场景
- 当并发量超过单体项目的并发量,可以使用主从方案。
- 缺陷
- 如果主库宕机,数据库[主库]不可用,而从库只能读取数据,当有请求写入数据的时候将无法写入数据。
四、主备倒换
- 互连式
-
概念
-
主备倒换指的是如果数据库[主库]不可用,那么从库变为主库;如图:
数据库[主库]和数据库[备机]会建立一个转台连接,并且主库会往备机一直发送主库的状态[正常运行,无法运行],当主库发送的状态为空或者无法运行时,备机则会判断主库出现问题,备机直接变为主库。
-
-
场景
- 数据量小的时候可以使用该方案。
-
缺陷
- 如果网络出现了问题,导致主库与备机之间的状态无法通信,备机则会判定主库无法使用,备机变为主库;当宕机的主库重启启动后,则会造成两个主库的数据不一致。
-
- 中介式
- 概念
-
中介式指的是将状态信息存储到中介数据库;如图:
数据库[主库]将状态信息存储到中介数据库,而备机则去中介数据库获取信息,如果获取的信息不正常,则备机变为主库;如果出问题的主库恢复正常后,主库发送状态到中介数据为正常,则以变为主库的备机从数据库中获取状态信息为正常,则变为备机。
-
- 概念
五、主主方案
- 概念
- 主主方案主要是应对与写的并发量大于读的并发量的方案;如图:
- 主主方案主要是应对与写的并发量大于读的并发量的方案;如图:
六、主从集群 [一主多从]
-
概念
- 主从集群指的是一个主库多个从库;如图:
- 主从集群指的是一个主库多个从库;如图:
-
缺陷
- 主节点存储的数据超过磁盘的容量了,造成数据溢出的问题。
- 当主库出现了不可用,则从库也将无法使用。
七、分散式集群 [多主多从]
- 概念
-
分散存储就是将不同的数据分别存储在不同的主机上;如图:
当客户端发送到请求[读数据,写数据]到服务端,服务端接收到请求[读数据,写数据],通过数据分配器将请求负载分配到不同的主机上。
-
- 场景
- 适用于大数据场景
- 高并发读写的场景
八、总结
- 数据库可用性方案[单体数据库,mysql redis 等 ]
- 主备方案:数据量小,并发量小
- 主从方案:数据量小,读并发量大,写并发量小
- 主主方案:数据量小,读并发量小,写并发量大
总结:数量小的时候,根据并发量的大小来选择具体的方案。