本发明涉及计算机,具体涉及微服务的故障处理方法、装置、计算机设备及存储介质。
背景技术:
1、大型应用软件因为高可用性地需求会使用微服务架构,将一个系统按业务划分成多个子系统,每个子系统都是完整的,可独立运行的,当单个微服务发生故障时,其它微服务不受影响,仍可继续运行,但无法再与故障的微服务进行通信。
2、在微服务故障时,需要将业务暂时转移到别的节点进行处理,这样会导致节点的服务暂停,在暂停时集群无法对该节点进行管理,对上层业务影响较大。
技术实现思路
1、有鉴于此,本发明提供了一种微服务的故障处理方法、装置、计算机设备及存储介质,以解决微服务发生故障时对上层业务影响较大的问题。
2、第一方面,本发明提供了一种微服务的故障处理方法,包括:
3、获取集群中每一种微服务类型分别对应的故障权重、集群中每一个节点包括的每一个微服务的微服务类型;
4、监控集群中每一个节点的微服务的运行状态;
5、当根据运行状态确定集群中存在发生故障的微服务时,按照微服务类型对发生故障的微服务进行统计,得到发生故障的每一种微服务类型对应的微服务数量;
6、根据发生故障的每一种微服务类型对应的微服务数量以及每一种微服务类型分别对应的故障权重,确定集群的故障评估结果;
7、当故障评估结果满足预设条件时,从集群的其他节点的所有微服务中选取一个微服务作为第一故障微服务对应的目标微服务,其中,第一故障微服务为发生故障的所有微服务中任一个微服务;
8、将第一故障微服务的业务请求转发至目标微服务进行业务处理。
9、通过上述方式,获取集群中每一种微服务类型分别对应的故障权重、集群中每一个节点包括的每一个微服务的微服务类型;监控集群中每一个节点的微服务的运行状态;当根据运行状态确定集群中存在发生故障的微服务时,按照微服务类型对发生故障的微服务进行统计,得到发生故障的每一种微服务类型对应的微服务数量;根据发生故障的每一种微服务类型对应的微服务数量以及每一种微服务类型分别对应的故障权重,确定集群的故障评估结果;当故障评估结果满足预设条件时,从集群的其他节点的所有微服务中选取一个微服务作为第一故障微服务对应的目标微服务;将第一故障微服务的业务请求转发至目标微服务进行业务处理。可以对集群中的微服务进行分类,设置多个微服务类型,并为每一微服务类型设置对应的故障权重,当监控到集群中微服务发生故障时,根据发生故障的微服务类型和权重,评估集群故障,根据评估结果进行故障处理,比相关技术中,只要出现故障就停止微服务,可以更好的根据故障的严重程度确定是不是必须停止微服务,这样可以在一些微服务故障发生时,并不停止微服务,而是从健康节点选择可替代的微服务继续为上层提供服务,这种操作是上层无感知的业务切换,几乎对上层业务不产生影响,能够很大程度上提高用户体验。
10、在一种可选的实施方式中,微服务类型包括第一微服务类型、第二微服务类型、第三微服务类型,以及第四微服务类型中的至少两种,
11、其中,第一微服务类型为多种微服务类型中对集群中cpu的占用率最高的微服务类型;
12、第二微服务类型为多种微服务类型中对集群中内存的占用率最高的微服务类型;
13、第三微服务类型为多种微服务类型中对集群中硬盘的占用率最高的微服务类型;
14、第四微服务类型为多种微服务类型中对集群中网络的占用率最高的微服务类型;
15、根据每一种微服务类型中发生故障的微服务数量以及每一种微服务类型分别对应的故障权重,确定集群的故障分值,包括:
16、根据发生故障的属于目标微服务类型的微服务数量以及目标微服务类型对应的第一故障权重,确定目标微服务类型的目标子故障评估结果,其中,目标微服务类型为多种微服务类型中任一种微服务类型;
17、直至确定所有的微服务类型分别对应的子故障评估结果之后,根据每一种微服务类型分别对应的子故障评估结果,确定集群的故障分值。
18、通过上述方式,可以按照较为常见的微服务类型对微服务进行分类,分类同时也考虑到对集群性能的影响,可以较为客观的评估故障的微服务对集群的影响程度。
19、在一种可选的实施方式中,故障评估结果包括故障分值,当故障评估结果满足预设条件时,从集群的其他节点的所有微服务中选取一个微服务作为第一故障微服务对应的目标微服务,包括:
20、当故障分值小于或者等于第一预设故障阈值时,获取发生故障的第一故障微服务的微服务类型;
21、根据第一故障微服务的微服务类型从集群的其他节点中筛选出与第一故障微服务的微服务类型相同的微服务作为候选微服务;
22、从候选微服务中选取一个微服务作为目标微服务。
23、通过上述方式,当故障分值小于或者等于第一预设故障阈值,即满足预设条件时,说明集群的故障程度在接受范围内,可以在集群中选取替代的微服务,而不需要暂停微服务进行检修或者重新启动,可以大大减小对上层业务的影响。
24、在一种可选的实施方式中,从候选微服务中选取一个微服务作为第一故障微服务对应的目标微服务,包括:
25、获取每一个候选微服务中与第一故障微服务的微服务类型对应的筛选指标的资源占用率;
26、从所有的候选微服务中选取资源占用率最小的一个候选微服务作为目标微服务。
27、通过上述方式,选取资源占用率最小的一个候选微服务作为目标微服务,接替故障微服务的工作,可以平衡集群中的资源,合理的使用集群资源。
28、在一种可选的实施方式中,根据每一种微服务类型中发生故障的微服务数量以及每一种微服务类型分别对应的故障权重,确定集群的故障评估结果,具体可以通过如下公式实现:
29、e=c×nc+m×nm+d×nd+n×nn
30、其中,e为故障评估结果,c为第一微服务类型对应的故障权重,nc为发生故障的第一微服务类型的微服务数量,m为第二微服务类型对应的故障权重,nm为发生故障的第二微服务类型的微服务数量,d为第三微服务类型对应的故障权重,nd为发生故障的第三微服务类型的微服务数量,n为第四微服务类型对应的故障权重,nn为发生故障的第四微服务类型的微服务数量。
31、在一种可选的实施方式中,第一微服务类型对应的子故障评估结果包括子故障分值,监控集群中每一个节点的微服务的运行状态,当监控到集群中存在发生故障的微服务时,根据发生故障的微服务的微服务类型确定每一种微服务类型中发生故障的微服务数量之后,方法还包括:
32、将第一微服务类型对应的子故障分值与微服务类型对应的第二预设故障阈值进行比对;
33、当第一微服务类型对应的子故障分值大于第二预设故障阈值时,对与第一微服务类型相同的其他微服务发送风险告警信息,以便根据风险告警信息对与其他微服务进行风险检查。
34、通过上述方式,可以对发生故障的同类型的微服务进行风险预警,便于工作人员有目的的进行维护和检修,提高集群的稳定性。
35、在一种可选的实施方式中,目标微服务类型对应的子故障评估结果包括子故障分值,监控集群中每一个节点的微服务的运行状态,当监控到集群中存在发生故障的微服务时,根据发生故障的微服务的微服务类型确定每一种微服务类型中发生故障的微服务数量之后,方法还包括:
36、将目标微服务类型对应的子故障分值与微服务类型对应的第二预设故障阈值进行比对;
37、当目标微服务类型对应的子故障分值大于第二预设故障阈值时,对与目标微服务类型相同的其他微服务发送风险告警信息,以便根据风险告警信息对与其他微服务进行风险检查。
38、在一种可选的实施方式中,根据发生故障的属于目标微服务类型的微服务数量以及目标微服务类型对应的第一故障权重,确定目标微服务类型的目标子故障评估结果,具体可以通过以下公式实现:
39、ex=nx×x(x∈{c,m,d,n})
40、其中,ex为目标微服务类型的目标子故障评估结果,nx为发生故障的目标微服务类型的微服务数量,x为第一微服务类型对应的故障权重,c为第一微服务类型对应的故障权重,m为第二微服务类型对应的故障权重,d为第三微服务类型对应的故障权重,n为第四微服务类型对应的故障权重,目标微服务类型为第一微服务类型、第二微服务类型、第三微服务类型以及第四微服务类型中的一种。
41、第二方面,本发明提供了一种微服务的故障处理装置,包括:
42、获取模块,用于获取集群中每一种微服务类型分别对应的故障权重、集群中每一个节点包括的每一个微服务的微服务类型;
43、监控模块,用于监控集群中每一个节点的微服务的运行状态;
44、统计模块,用于当根据运行状态确定集群中存在发生故障的微服务时,按照微服务类型对发生故障的微服务进行统计,得到发生故障的每一种微服务类型对应的微服务数量;
45、确定模块,用于根据发生故障的每一种微服务类型对应的微服务数量以及每一种微服务类型分别对应的故障权重,确定集群的故障评估结果;
46、选取模块,用于当故障评估结果满足预设条件时,从集群的其他节点的所有微服务中选取一个微服务作为第一故障微服务对应的目标微服务,其中,第一故障微服务为发生故障的所有微服务中任一个微服务;
47、转发模块,用于将第一故障微服务的业务请求转发至目标微服务进行业务处理。
48、在一种可选的实施方式中,微服务类型包括第一微服务类型、第二微服务类型、第三微服务类型,以及第四微服务类型中的至少两种,
49、其中,第一微服务类型为多种微服务类型中对集群中cpu的占用率最高的微服务类型;
50、第二微服务类型为多种微服务类型中对集群中内存的占用率最高的微服务类型;
51、第三微服务类型为多种微服务类型中对集群中硬盘的占用率最高的微服务类型;
52、第四微服务类型为多种微服务类型中对集群中网络的占用率最高的微服务类型;
53、确定模块,包括:
54、第一确定单元,用于根据发生故障的属于目标微服务类型的微服务数量以及目标微服务类型对应的第一故障权重,确定目标微服务类型的目标子故障评估结果,其中,目标微服务类型为多种微服务类型中任一种微服务类型;
55、第二确定单元,用于直至确定所有的微服务类型分别对应的子故障评估结果之后,根据每一种微服务类型分别对应的子故障评估结果,确定集群的故障分值。
56、在一种可选的实施方式中,选取模块,包括:
57、获取单元,用于当故障分值小于或者等于第一预设故障阈值时,获取发生故障的第一故障微服务的微服务类型;
58、筛选单元,用于根据第一故障微服务的微服务类型从集群的其他节点中筛选出与第一故障微服务的微服务类型相同的微服务作为候选微服务;
59、选取单元,用于从候选微服务中选取一个微服务作为目标微服务。
60、在一种可选的实施方式中,选取单元,包括:
61、获取子单元,用于获取每一个候选微服务中与第一故障微服务的微服务类型对应的筛选指标的资源占用率;
62、选取子单元,用于从所有的候选微服务中选取资源占用率最小的一个候选微服务作为目标微服务。
63、在一种可选的实施方式中,确定模块,具体通过如下方式实现:
64、e=c×nc+m×nm+d×nd+n×nn
65、其中,e为故障评估结果,c为第一微服务类型对应的故障权重,nc为发生故障的第一微服务类型的微服务数量,m为第二微服务类型对应的故障权重,nm为发生故障的第二微服务类型的微服务数量,d为第三微服务类型对应的故障权重,nd为发生故障的第三微服务类型的微服务数量,n为第四微服务类型对应的故障权重,nn为发生故障的第四微服务类型的微服务数量。
66、在一种可选的实施方式中,装置还包括:
67、比对模块,用于将目标微服务类型对应的子故障分值与微服务类型对应的第二预设故障阈值进行比对;
68、发送模块,用于当目标微服务类型对应的子故障分值大于第二预设故障阈值时,对与目标微服务类型相同的其他微服务发送风险告警信息,以便根据风险告警信息对与其他微服务进行风险检查。
69、在一种可选的实施方式中,第一确定单元,具体可以通过以下公式实现:
70、ex=nx×x(x∈{c,m,d,n})
71、其中,ex为目标微服务类型的目标子故障评估结果,nx为发生故障的目标微服务类型的微服务数量,x为第一微服务类型对应的故障权重,c为第一微服务类型对应的故障权重,m为第二微服务类型对应的故障权重,d为第三微服务类型对应的故障权重,n为第四微服务类型对应的故障权重,目标微服务类型为第一微服务类型、第二微服务类型、第三微服务类型以及第四微服务类型中的一种。
72、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的微服务的故障处理方法。
73、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的微服务的故障处理方法。