第77篇
极客时间《从0开始学架构》课程笔记。
什么是计算高可用
本质:通过冗余来规避部分故障的风险
设计思想:通过增加更多服务器达到计算高可用
设计复杂度:任务管理,即失败后如何重新分配任务
设计关键点:哪些服务器可以执行任务;任务如何重新执行。
常见计算高可用架构
常见的计算高可用架构有3种:主备、主从和集群。主备又分为冷备和温备;集群分为对称集群和非对称集群。
1、主备

详细设计:
- 主机执行所有计算任务
- 主机故障时任务分配器不会自动分配任务给备机,此时备机不可用
- 主机若能恢复,任务分配器将任务发给主机
- 主机不能恢复时,人工操作将备机升为主机,任务分配器将任务给新的主机
- 人工增加新奇迹作为备机
- 根据备机状态不同,可分为冷备架构和温备架构,一般推荐温备
优点:实现简单,主备机不需要进行交互,状态判断和切换操作都由人工执行
缺点:人工操作时间不可控,操作效率较低,容易出错
适用场景:内部管理系统、后台管理系统这类使用人数不多、使用频率不高的业务,不太适合在线业务
2、主从

详细设计:
- 正常情况下,主机备机分别执行部分计算任务
- 当主机故障时,任务分配器继续分配任务发给主机,不管任务执行是否成功
- 如果主机能恢复,继续按照原有设计策略分配任务
- 如果主机不能恢复,需要人工操作,修改配置将原来的从机升级为主机
- 增加新的机器作为从机,任务分配器继续按照原有设计策略分配任务
优点:从机也在执行任务,发挥了从机的硬件性能
缺点:需要对计算任务进行分类,任务分配器更为复杂
3、集群
主备或主从架构的问题:需要人工操作、效率低、容易出错、不能及时处理故障
高可用集群方案就是为了实现自动完成切换操作。
根据服务器节点角色不同,分为对称集群和非对称集群两类。
与存储高可用不一样,计算高可用集群包括2台服务器的集群。
对称集群
定义:集群中每个服务器的角色都是一样的,都可以执行所有任务,也叫负载均衡集群

详细设计:
- 正常情况下,任务分配器采取某种策略分配计算任务
- 当集群中某台服务器故障时,任务分配器将任务分配给其他服务器
- 故障服务器恢复后,任务分配器重新分配任务给它
设计关键点:
- 任务分配器需要选取分配策略、需要检测服务器状态
- 任务分配策略一般选择轮询或随机
- 状态检测需要检测服务器状态和任务执行状态,不同业务场景的状态判断条件差异很大,实际设计时要根据业务需求来进行设计和调优
非对称集群
定义:集群中的服务器分为多个不同的角色,不同的角色执行不同的任务,例如最常见的 Master-Slave 角色

详细设计:
- 集群通过某种方式区分不同服务器的角色,如ZAB算法选举
- 任务分配器将不同任务分发给不同服务器
- 当指定类型的服务器故障时,需要重新分配角色
- Master服务器故障时,指定一个Slave服务器为Master
- Slave服务器故障时,将故障服务器从集群剔除
设计关键点:
- 任务分配策略更加复杂:需要将任务划分为不同类型并分配给不同角色的集群节点
- 角色分配策略实现比较复杂:例如,可能需要使用 ZAB、Raft 这类复杂的算法来实现 Leader 的选举
网友评论