本发明涉及软件服务 ,尤其涉及一种基于混沌工程的强弱依赖治理方法、装置、电子设备及存储介质。
背景技术:
1、采用微服务架构后,系统功能一般不是独立存在的,通常会依赖其他服务才能完成业务逻辑。例如,主服务a需要借助服务b的功能完成业务逻辑,则称为主服务a依赖于服务b。当b服务异常时,则会影响主服务a业务流程的执行,影响系统的可用性,这就是“强依赖”,反之为"弱依赖"。现有技术在确定服务间为强依赖关系后,通常采用将强依赖转换为弱依赖的方法进行治理。
2、但是直接将强依赖转换为弱依赖的方法过于单一,不能满足不同场景的系统需求,导致强弱依赖治理的效果不好。
技术实现思路
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、本发明提供的基于混沌工程的强弱依赖治理方法、装置、电子设备及存储介质,通过确定目标系统链路是否需要进行强弱依赖治理;在确定所述目标系统链路需要进行强弱依赖治理的情况下,采用预设治理方法对所述目标系统链路进行强弱依赖治理,所述预设治理方法包括调整所述目标系统链路中的链路架构、对所述主服务的依赖程度进行降级和设定所述依赖服务的停用机制中的至少一种方法。所述方法能够解决现有技术中单一的强弱依赖治理方法不能满足不同场景的系统需求且治理效果差的问题。本发明提供的调整所述目标系统链路中的链路架构的方法能够适用于高并发与大规模数据处理、跨区域与跨网络访问、复杂业务逻辑与系统集成等强弱依赖治理场景,提供的对所述主服务的依赖程度进行降级的方法能够适用于资源紧张与压力激增、依赖服务不稳定或故障、系统维护与升级等强弱依赖治理场景,提供的设定所述依赖服务的停用机制的方法能够适用于依赖服务变更或升级、风险规避与预防、业务调整与策略变更等强弱依赖治理场景,本发明采用多维度的治理方法进行强弱依赖治理,能够适应不同的强弱依赖治理场景需求,且提升强弱依赖治理的治理效果。