其他分享
首页 > 其他分享> > 如何设计计算高可用架构?

如何设计计算高可用架构?

作者:互联网

极客时间:《从 0 开始学架构》:如何设计计算高可用架构?

1、引言

计算高可用的本质是通过冗余来规避部分故障的风险,由于单台服务器无论如何都无法达到这个目的,因此计算高可用的设计思想很简单:通过增加更多服务器来达到计算高可用。
计算高可用的设计复杂度主要体现在任务管理,即当任务在某台服务器上执行失败后,如何将任务重新分配到新的服务器进行执行。因此有以下两个关键点。

2、主备

主备架构师计算高可用最简单的架构,和存储高可用的主备赋值架构类似,基本的架构如下:

主备方案的详细设计:

根据备机状态,主备架构又可细分为冷备架构和温备架构
冷备:备机上程序包、配置文件等都准备好,但备机上的业务系统并没有启动,当主机故障后,需要人工将备机的业务系统启动,并将任务分配器的任务请求切换发送给备机。
温备:备机上的业务系统已经启动,只是不对外提供服务,主机故障后,人工只需要将任务分配器的任务请求切换发送到备机即可。冷备可以节省一定的能源,但温备能够大大减少手工操作时间,因此一般情况下推荐用温备的方式。

计算高可用的主备架构也比较适合与内部管理系统、后台管理系统这类使用人数不多、使用频率不高的业务,不太适合在线的业务。

3、主从

计算高可用的主从架构中的从机也是要执行任务的。任务分配器需要将任务进行分类,确定哪些任务可以发送给主机执行,哪些任务可以发送给备机执行,其基本的架构示意图如下:

主从方案详细设计:

4、集群

主备架构和主从架构都是通过冗余一台服务器来提升可用性,且若主机发生故障需要人工干预进行主备或主从的切换。虽然简单,但其主要问题就是:人工操作效率低、容易出错、不能及时处理故障等。针对可用性更加严格的场景中,需要系统自动完成切换操作,这就是集群方案。
更加集群汇总服务节点角色的不同,可分为两类:一类是对称集群(集群中每个服务器的角色都是一样的,都可以执行所有任务);另一类是非对称集群(集群中的服务器分为多个不同的角色,不同的角色执行不同的任务)。

对称集群
对称集群更通俗的叫法是负载均衡集群,其架构示意图如下:

负载均衡集群详细设计:

负载均衡集群的设计关键点在于两点:

任务分配策略轮询和随机应该就够了;
至于服务器状态,既需要检测服务器状态(如服务器是否宕机、网络是否正常),还要检测任务的执行状态(任务是否卡死、是否执行时间过长等),常用的做法是任务分配器和服务器之间通过心跳来传递信息,包括服务器信息和任务信息,然后根据实际情况来确定状态判断条件

非对称集群
非对称集群中不同服务器的角色是不同的,不同角色的服务器承担不同的职责。非对称集群的基本架构示意图如下:

非对称集群架构详细设计:

非对称集群相比负载均衡集群,设计复杂度主要体现在两个方面:

PS:
计算高可用架构从形式上和存储高可用架构看上去几乎一样,它们的复杂度是一样的么?

计算高可用架构,主要解决当单点发生故障后,原本发送到故障节点的任务,任务如何分发给非故障节点,根据业务特点选择分发和重试机制即可,不存在数据一致性问题,只需要保证任务计算完成即可
存储高可用架构,解决的问题是当单点发生故障了,任务如何分发给其他非故障节点,以及如何保障数据的一致性问题。
所以存储的高可用比计算的高可用的设计更为复杂。

标签:架构,计算,可用,主机,任务,集群,分配器,服务器
来源: https://www.cnblogs.com/whiteBear/p/15790041.html