分布式之计算高可用
@
一、计算高可用概念
- 概念
- 简单的说就是系统无论在什么情况下都能够正常的运行称为计算高可用;如图:
- 简单的说就是系统无论在什么情况下都能够正常的运行称为计算高可用;如图:
二、主备方案--热方案[推荐]
-
当客户端访问服务端,服务端由于某种原因导致系统宕机,这时我们就可以启用备份机,接收并处理请求,就称之为主备方案;如图:
-
场景
- 只有一个实例
- 并发量小
比如:后台管理系统[内部系统],网站系统,实时系统等。
-
缺陷
- 直接启动
- 消耗操作系统资源。
- 直接启动
三、主备-冷方案
-
概念
- 主备-冷备指的是备份机一直处于关机状态,这样可以不用消耗操作系统的资源;如图:
- 主备-冷备指的是备份机一直处于关机状态,这样可以不用消耗操作系统的资源;如图:
-
场景
- 只有一个实例
- 并发量小
比如:后台管理系统[内部系统],网站系统,实时系统等。
-
缺陷
- 需要人工干预启动备份机,造成延时问题。
四、主从方案
-
概念
- 当客户端发起大量的请求到服务端的主节点,由于大量的请求主节点无法处理这么多得请求,分流一部分请求给从节点来解决就称之为主从方案;如图:
- 当客户端发起大量的请求到服务端的主节点,由于大量的请求主节点无法处理这么多得请求,分流一部分请求给从节点来解决就称之为主从方案;如图:
-
场景
- 前提
- 并发量超过一个实例
- 实例个数只有两个
- 前提
-
缺陷
- 处理的并发量有限。
五、对称集群方案
-
概念
- 对称集群指的是多个相同实例组成的集群;如图:
- 对称集群指的是多个相同实例组成的集群;如图:
-
缺陷
- 如果并发量过大,现有的实例无法处理这么多的请求,需要增加一个新的实例,这样就得修改Nginx[负载均衡器]的配置文件,违背了开闭原则,同时需要重启Nginx服务。
六、对称集群的伸缩架构
-
概念
当服务实例启动的时候,会将IP地址和端口号注册到Consul中,在通过Consul-Template获取注册的数据,动态更新Nginx配置文件;如图:
-
作用
- 可以动态处理客户端的并发量。
-
场景
- 可以适用于所有的数据并发量。
-
缺陷
- 成本高
七、数据库非对称集群方案
-
概念
- 指的是系统计算不一样,也就是不一样的客户端请求;如图:
- 指的是系统计算不一样,也就是不一样的客户端请求;如图:
-
场景
- 前提
- 读并发量大
- 写并发量小
- 前提
-
实现方案
-
使用Nginx;如图:
- 缺陷
- 分库分表不能使用
- 缺陷
-
使用Shardingsphere-proxy;如图:
- 缺陷
- 如果使用Shardingsphere-proxy方案实现非对称集群方案,新增一个实例,需要修改Shardingsphere-proxy配置文件,导致违背了开闭原则。
- 如果数据库的主节点宕机了,需要选举其中的一个从节点为主节点,还得需要修改Shardingsphere-proxy配置文件
- 缺陷
-
Mysql-Cluster方案[非对称集群-动态架构]
- 如图:
- 如图:
-
-
总结
- 主从:读数据并发量小,写并发量小 [数据库设置读写分离]
- 非对称集群:写数据并发量小,读并发量大。 [使用nginx或者Shardingsphere-proxy]
- 非对称集群-动态架构:写数据并发量小,读并发量小或者大[Mysql-Cluster]