一种故障注入系统、方法、介质及设备与流程
- 国知局
- 2024-09-05 14:31:49
本公开涉及故障注入,更为具体来说,本公开涉及一种故障注入系统、方法、介质及设备。
背景技术:
1、在产品设备的性能测试过程中,需要通过一些故障场景测试来评估产品的可靠性,为了完成这些测试需要,需要对设备中的进程进行故障模拟。
2、故障注入演练作为中大型公司的一个必备测试步骤,很好的校验了业务系统在故障场景下程序的可靠性和可用性。
3、基于一些开源的故障注入工具(如chaosblade或自定义脚本工具),可以很好的实现单个机器的故障注入。但是这种纯手工的操作方式,不利于周期性、大规模的故障注入演练,而且故障的注入和恢复需要人工去确认。
4、相关技术中,一般主要使用kill掉进程、让进程stop或是在内核态更改进程的状态等方法,但是,这些方法都属于进程外围的故障,大部分的进程级别故障是不能模拟的;另一种方法则是采用函数容器或ptrace(一种调试函数)进行函数替换的方式对执行函数进行修改,以模拟进程故障,但是,这种方式并不是所有编程语言都适合,而且不同的编程语言需要重新去实现,不同的函数也需要重新去修改代码,编译才能使用,效率较低,不利于实现可靠性测试和自动化测试。
5、因此,如何实现快速高效的进程级故障模拟,以便于实现产品设备的可靠性测试和自动化测试是本领域技术人员亟待解决的问题。
技术实现思路
1、为解决现有技术的故障注入测试为人工校验不能满足用户需求;为解决实现快速高效的进程级故障模拟,以便于实现产品设备的可靠性测试和自动化测试的技术问题。
2、为实现上述技术目的,本公开提供了一种故障注入系统,包括:
3、协调集群zookeeper,用于负责控制组件集群信息的注册和执行器集群信息的注册;
4、控制台单元,用于预先编写故障注入规则,其中,所述故障注入规则包括:应用名、ip列表、注入故障类型、持续时间、开始时间和/或周期;
5、根据所述故障注入规则中的参数构造出一个完整的故障注入规则供所述控制组件使用;
6、控制组件,用于监听故障注入任务的运行状态;
7、执行器,用于接收故障注入任务,接收到任务后即按照类型来进行故障注入。
8、进一步,所述控制组件具体用于监听任务的运行状态,当处理结束时间到之后,则直接发起命令终止故障任务的执行,将此时任务状态置为完成;
9、如果故障注入任务执行失败,则记录日志,并归还该故障注入任务。
10、进一步,所述控制组件还用于当故障注入任务被重复触发3次仍旧异常,则设置任务状态为异常,后续不再执行。
11、为实现上述技术目的,本公开还能够提供一种故障注入方法,应用于上述的故障注入系统中,所述方法包括:
12、利用协调集群zookeeper注册控制组件和执行器的集群信息;
13、利用控制台单元预先编写故障注入规则;
14、在所述控制组件竞选领导控制组件;
15、利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障。
16、进一步,所述故障注入规则具体包括:
17、应用名、ip列表、注入故障类型、持续时间、开始时间和/或周期;
18、根据所述故障注入规则中的参数构造出一个完整的故障注入规则供所述控制组件使用。
19、进一步,所述在所述控制组件竞选领导控制组件具体包括:
20、判断当前控制组件是否竞选成功,若成功则当前控制组件为领导控制组件,用于监听其他非领导控制组件的存活状况,并判断是否存在异常,若存在异常,则重新分配其任务到其他控制组件上,若不存在异常则当前控制组件继续执行当前故障注入任务;
21、若不成功则当前控制组件继续执行当前故障注入任务。
22、进一步,在所述利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障的步骤中,利用所述领导控制组件监听故障注入任务是否执行成功,若成功则设置任务执行状态为成功;若不成功则归还所述故障注入任务。
23、进一步,所述利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障具体包括:
24、所述执行器在所述协调集群zookeeper中注册组件信息;
25、接收故障注入任务并将运行中的信息注册到所述协调集群zookeeper中,并同步修改当前的负载数数据;
26、若当前任务执行结束,则将所述协调集群zookeeper中的任务状态标记为完成状态。
27、为实现上述技术目的,本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的故障注入方法的步骤。
28、为实现上述技术目的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的故障注入方法的步骤。
29、本公开的有益效果为:
30、1.本公开的系统和方法通过platform来完成故障注入任务的编写。
31、2.本公开的系统和方法中controller节点通过master选举,由master节点来完成对其他controller节点的监听,当发现controller节点宕机,则整理其在管理的任务,分配给其他节点继续进行监听和终止处理,避免了故障注入任务无法及时终止。
32、3.本公开的系统和方法中executor节点作为故障注入执行器,具有可水平扩展的特性,新接入的executor节点负载最低,可被controller节点快速注入任务。
技术特征:1.一种故障注入系统,其特征在于,包括:
2.根据权利要求1中所述的系统,其特征在于,所述控制组件具体用于监听任务的运行状态,当处理结束时间到之后,则直接发起命令终止故障任务的执行,将此时任务状态置为完成;
3.根据权利要求2中所述的系统,其特征在于,所述控制组件还用于当故障注入任务被重复触发3次仍旧异常,则设置任务状态为异常,后续不再执行。
4.一种故障注入方法,应用于如权利要求1~3任一项中所述的系统中,其特征在于,包括:
5.根据权利要求4所述的方法,其特征在于,所述故障注入规则具体包括:
6.根据权利要求4所述的方法,其特征在于,所述在所述控制组件竞选领导控制组件具体包括:
7.根据权利要求4所述的方法,其特征在于,在所述利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障的步骤中,利用所述领导控制组件监听故障注入任务是否执行成功,若成功则设置任务执行状态为成功;若不成功则归还所述故障注入任务。
8.根据权利要求4所述的方法,其特征在于,所述利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障具体包括:
9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求4~8任一项中所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时用于实现权利要求4~8任一项中所述的方法对应的步骤。
技术总结本公开提供了一种故障注入系统、方法、介质及设备,所述系统包括:协调集群Zookeeper,用于负责控制组件集群信息的注册和执行器集群信息的注册;控制台单元,用于预先编写故障注入规则;根据所述故障注入规则中的参数构造出一个完整的故障注入规则供所述控制组件使用;控制组件,用于监听故障注入任务的运行状态;执行器,用于接收故障注入任务,接收到任务后即按照类型来进行故障注入。所述方法包括:利用协调集群Zookeeper注册控制组件和执行器的集群信息;利用控制台单元预先编写故障注入规则;在所述控制组件竞选领导控制组件;利用所述控制组件在故障注入任务执行开始时选择一个负载最低的故障注入所述执行器对当前ip机器注册对应类型故障。技术研发人员:蒿兴旺受保护的技术使用者:平安壹钱包电子商务有限公司技术研发日:技术公布日:2024/9/2本文地址:https://www.jishuxx.com/zhuanli/20240905/286842.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。