一种分布式系统、及其故障测试方法、装置和介质与流程
- 国知局
- 2024-11-06 14:31:48
本发明涉及分布式系统领域,特别是涉及一种分布式系统、及其故障测试方法、装置和介质。
背景技术:
1、分布式系统是一种由多台计算机和通信网络组成的系统。与集中式系统不同,它没有中央控制节点,每个节点都可以独立处理任务,这种架构对于大规模数据的存储、处理和查询操作的实现,具有更为高效的性能表现。而分布式系统作为一种产品,一般需要进行多种测试,以保证其性能和可靠性。
2、目前,对于分布式系统的故障测试基本还是需要依赖人工实现,通过黑盒测试的方式对分布式系统的各项功能进行针对性的故障测试。但是,在通过上述方案进行故障测试时,经常会出现因为故障叠加导致测试人员无法准确分析出故障原因的问题。在分布式系统中,由于各个节点之间可以独立运行,且节点间具有一定的耦合性,当几个节点出现不同的故障时,对外表现即为一种由多个故障叠加后的复合故障。因此,测试人员很难判断故障处理是否符合预期,需要开发介入。或者,也可能出现从故障处理的表现看符合预期,但实际软件的逻辑运行并不正确的问题。上述问题均导致无法准确的实现分布式系统的故障测试,从而影响分布式系统的性能和可靠性。
3、所以,现在本领域的技术人员亟需要一种分布式系统故障测试方法,用于解决传统的故障测试方案在分布式系统这类容易出现故障叠加问题的场景下,难以保证测试准确性的问题。
技术实现思路
1、本发明的目的是提供一种分布式系统、及其故障测试方法、装置和介质,以解决传统的故障测试方案在分布式系统这类容易出现故障叠加问题的场景下,难以保证测试准确性的问题。
2、为解决上述技术问题,本发明提供一种分布式系统故障测试方法,应用于分布式系统;所述分布式系统包括:多个节点,其中,一个节点作为客户端,其他节点作为服务端;
3、本方法应用于所述客户端,包括:
4、获取故障测试策略;其中,一组故障测试策略包括:节点的网际协议地址、故障注入命令、故障恢复命令、状态监控命令和结果判定配置信息;
5、根据所述网际协议地址,将同组所述故障测试策略中的所述故障注入命令、所述故障恢复命令和所述状态监控命令发送至对应的所述服务端中,以便于所述服务端:执行所述故障注入命令以进行故障注入,并获取故障注入结果;执行所述故障恢复命令以进行故障恢复;执行所述状态监控命令以对指定状态在故障注入以及故障恢复后的变化进行监控,并获取状态监控结果;返回所述故障注入结果和所述状态监控结果至所述客户端;
6、接收所述服务端所返回的所述故障注入结果和所述状态监控结果;
7、基于所述结果判定配置信息,根据对应的所述故障注入结果和所述状态监控结果确定故障测试结果。
8、在一种可能的实施例中,基于所述结果判定配置信息,根据对应的所述故障注入结果和所述状态监控结果确定故障测试结果包括:
9、根据所述故障注入结果,判断所述服务端是否注入故障成功;
10、若注入故障成功,则根据所述结果判定配置信息和所述状态监控结果,判断指定状态的变化是否符合预期;
11、若符合,则判定所述故障测试结果为测试成功;
12、若不符合,则判定所述故障测试结果为测试失败;
13、若注入故障失败,则重新向对应的所述服务端发送所述故障注入命令,以使所述服务端再次进行故障注入;
14、本方法还包括:
15、统计发送同一所述故障注入命令的重复次数;
16、若重复次数超过预设的重复阈值,则进行告警并返回对应的提示信息;
17、其中,所述提示信息包括:所述故障注入命令以及对应的所述网际协议地址。
18、在一种可能的实施例中,若获取到多组所述故障测试策略;
19、则,根据所述网际协议地址,将同组所述故障测试策略中的所述故障注入命令、所述故障恢复命令和所述状态监控命令发送至对应的所述服务端中包括:
20、根据所述网际协议地址,将各组所述故障测试策略进行分类;
21、将对应于某一所述服务端的各组所述故障注入命令、所述故障恢复命令和所述状态监控命令,打包发送至对应的所述服务端中。
22、在一种可能的实施例中,在根据所述网际协议地址,将同组所述故障测试策略中的所述故障注入命令、所述故障恢复命令和所述状态监控命令发送至对应的所述服务端中之前,还包括:
23、获取节点配置信息;
24、根据所述节点配置信息向各所述服务端发送通信连接建立请求,以与各所述服务端之间建立通信连接。
25、为解决上述技术问题,本发明还提供一种分布式系统故障测试方法,应用于分布式系统;所述分布式系统包括:多个节点,其中,一个节点作为客户端,其他节点作为服务端;
26、本方法应用于所述服务端,包括:
27、接收由所述客户端发送的故障注入命令、故障恢复命令和状态监控命令;
28、根据所述故障注入命令进行故障注入,并获取故障注入结果;
29、在故障注入后,根据所述故障恢复命令进行故障恢复;
30、根据所述状态监控命令对指定状态在故障注入以及故障恢复后的变化进行监控,并获取状态监控结果;
31、将所述故障注入结果和所述状态监控结果返回至所述客户端,以便于所述客户端:基于与所述故障注入命令、所述故障恢复命令和所述状态监控命令属于同一组故障测试策略的结果判定配置信息,根据对应的所述故障注入结果和所述状态监控结果确定故障测试结果。
32、在一种可能的实施例中,还包括:
33、创建第一进程和第二进程;
34、其中,所述第一进程用于:执行所述故障注入命令,并返回所述故障注入结果至所述客户端;以及在执行所述故障注入命令后,执行所述故障恢复命令;
35、所述第二进程用于:执行所述状态监控命令,并返回所述状态监控结果至所述客户端;
36、所述第一进程和所述第二进程为两个并行运行的进程。
37、在一种可能的实施例中,将所述故障注入结果和所述状态监控结果返回至所述客户端包括:
38、解析所述故障注入结果和所述状态监控结果,以得到多个包含时序特征的结果项;
39、将各所述结果项根据时序先后重新进行排序,合并成一个结果数据包;
40、将所述结果数据包发送至所述客户端。
41、在一种可能的实施例中,在接收由所述客户端发送的故障注入命令、故障恢复命令和状态监控命令之前,还包括:
42、打开套接字连接,等待所述客户端发送的通信连接建立请求;
43、在接收到所述客户端发送的通信连接建立请求之后,响应所述通信连接建立请求,以建立与所述客户端之间的通信连接。
44、为解决上述技术问题,本发明还提供一种分布式系统故障测试装置,其特征在于,应用于分布式系统;所述分布式系统包括:多个节点,其中,一个节点作为客户端,其他节点作为服务端;
45、本装置应用于所述客户端,包括:
46、策略获取模块,用于获取故障测试策略;其中,一组故障测试策略包括:节点的网际协议地址、故障注入命令、故障恢复命令、状态监控命令和结果判定配置信息;
47、策略分发模块,用于根据所述网际协议地址,将同组所述故障测试策略中的所述故障注入命令、所述故障恢复命令和所述状态监控命令发送至对应的所述服务端中,以便于所述服务端:执行所述故障注入命令以进行故障注入,并获取故障注入结果;执行所述故障恢复命令以进行故障恢复;执行所述状态监控命令以对指定状态在故障注入以及故障恢复后的变化进行监控,并获取状态监控结果;返回所述故障注入结果和所述状态监控结果至所述客户端;
48、结果接收模块,用于接收所述服务端所返回的所述故障注入结果和所述状态监控结果;
49、故障判定模块,用于基于所述结果判定配置信息,根据对应的所述故障注入结果和所述状态监控结果确定故障测试结果。
50、为解决上述技术问题,本发明还提供一种分布式系统故障测试装置,应用于分布式系统;所述分布式系统包括:多个节点,其中,一个节点作为客户端,其他节点作为服务端;
51、本装置应用于所述服务端,包括:
52、命令接收模块,用于接收由所述客户端发送的故障注入命令、故障恢复命令和状态监控命令;
53、故障注入模块,用于根据所述故障注入命令进行故障注入,并获取故障注入结果;
54、故障恢复模块,用于在故障注入后,根据所述故障恢复命令进行故障恢复;
55、状态监控模块,用于根据所述状态监控命令对指定状态在故障注入以及故障恢复后的变化进行监控,并获取状态监控结果;
56、结果返回模块,用于将所述故障注入结果和所述状态监控结果返回至所述客户端,以便于所述客户端:基于与所述故障注入命令、所述故障恢复命令和所述状态监控命令属于同一组故障测试策略的结果判定配置信息,根据对应的所述故障注入结果和所述状态监控结果确定故障测试结果。
57、应用于客户端侧的分布式系统,包括:多个节点;一个节点作为客户端,其他节点作为服务端;
58、其中:
59、所述客户端用于实现如上所述的应用于客户端侧的分布式系统故障测试方法的步骤;
60、所述服务端用于实现如上所述的应用于服务端侧的分布式系统故障测试方法的步骤。
61、为解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的分布式系统故障测试方法的步骤。
62、本发明提供的一种分布式系统故障测试方法,通过利用分布式系统中的已有节点,将其划分为客户端(client)和服务端(server),分别执行不同的故障测试逻辑。具体的,客户端在获取到用于实际故障测试的故障测试策略之后,根据其中的节点网际协议(internet protocol,ip)地址,将对应的故障注入命令、故障恢复命令、状态监控命令发送至对应的服务端也即对应的节点中;之后,服务端接收到上述命令并执行,以完成相应的故障测试流程,并向客户端返回相应的结果(即故障注入结果和状态监控结果);在客户端接收到服务端返回的测试结果后,即可根据故障测试策略中的结果判定配置信息,对测试结果进行处理,以判定该服务端的故障测试结果,完成对该节点的一次故障测试用例。
63、综上所述可知,本方法采用了客户端/服务端(client/server,c/s)架构,客户端可以实现对分布式系统内各服务端的独立故障测试,实现了深入到分布式系统内节点层面的故障检测,从而有效地解决节点之间的故障叠加问题。基于本方法实现的故障测试可以实现各个节点的独立的故障测试,将故障原因以及故障处理是否符合预期均深入到每一个节点上,从而有效地避免了多个节点之间的故障因为叠加而导致难以判断的问题。基于此,通过本方法进行分布式系统的故障测试,可以提高测试效率和准确性,从而有利于提高分布式系统的软件质量、降低维护成本、减少开发的额外分析工作量。
64、本发明提供的分布式系统、及其故障测试装置、及非易失性存储介质,与上述方法对应,效果同上。
本文地址:https://www.jishuxx.com/zhuanli/20241106/322656.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表