一、低写低读并发,低数据量方案
方案一:双机高可用方案
1、数据库架构图
2、特点
一台机器A作为读写库,另一个B作为备份库;A库故障后B库作为读写库;A库恢复后作为备库。
3、开发说明
4、适应场景
读写都不高的场景(单表数据低于500万),双机高可用。
5、优缺点
优点时一个机器故障了可以自动切换;缺点时只有一个库在工作,读写并未分裂,并发有限制。
方案二:主从结构方案
1、数据库架构图
2、特点
一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。
3、开发说明
这种方案的实现,要借助数据库中间件Mycat来实现。
项目开发中,要配置Mycat数据源,并实现对Mycat数据源的数据操作。数据库A和数据库B应该互为主从。数据库的主猪配置、故障排除和数据补全,依旧需要DBA和运维人员维护。
4、适应场景
读和写都不是非常高的场景(单表数据低于1000万),高可用。比方案一并发要高很多。
5、优缺点
优点:一个机器故障了可以自动切换;读写分离,并发有了很大提升。
缺点:引入Mycat节点,若要高可用需要引入至少两个Mycat。
二、高读低写并发,低数据量方案
方案三:一主多从+读写分离
1、数据库架构图
2、特点
一个主库多个从库,当主库A故障时,提升从库B为主写库,同时修改C、D库为B的从库。A故障修复后,作为B的从库。
3、适用场景
该场景适合写并发不大,但是读写并发大得很的场景
4、优缺点
由于配置了多个读节点,读并发的能力有了质的提高。理论上说,读节点可以多个,可以负载很高级别的读并发。
三、高读并发,低数据量方案
方案四:MatiaDB Galera Cluseter方案
1、数据库架构图
2、特点:
多个数据库,在负载均衡作用下,可同时进入写入和读取操作;各个库之间以Glaera Replication的方法进行数据同步,即每个库理论上来说,数据是完全一致的。
3、开发说明
数据库读写时,只需要修改数据库的读写IP为keepalived的虚拟节点即可;
4、适应场景
该方案适合读写并发较大,数据量不是很大的场景。
5、优缺点
优点:
(1)可以在任意节点上进行读
(2)自动剔除故障节点
(3)自动加入新节点
(4)真正并行复制,基于行级
(5)客户端连接跟操作单数据库的体验一致
(6)同步复制,因此有较高的性能和可靠性
缺点:
四、高读写并发,高数据量方案
方案五:数据库中间件
2、特点
采用Mycat进行分片存储,可以解决写负载均衡和数据量过大的问题;每个分片配置多个主从库,可以减少单个库的压力。
3、适用场景
读写并发都很大并且数据量很大的场景
4、优缺点
优点:终极的解决高并发高数据量的方法
缺点:配置和维护都比较麻烦,需要的软硬件设备资源大。