一种故障注入方法、装置及设备制造方法及图纸

技术编号:19821257 阅读:20 留言:0更新日期:2018-12-19 14:31
本说明书实施例公开了一种故障注入方法、装置及设备,所述方法包括:拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。

【技术实现步骤摘要】
一种故障注入方法、装置及设备
本说明书涉及计算机
,尤其涉及一种故障注入方法、装置及设备。
技术介绍
在互联网系统中,单体应用被拆分成多个应用后,不同应用之间可以通过分布式服务框架,或者也可以通过预定的可以实现RPC(RemoteProcedureCall,远程过程调用)的服务框架进行通讯交互,从而实现面向服务架构的互联网系统,而通常面向服务架构的互联网系统需要针对某服务进行线上监控。通常,可以通过向指定服务方法中注入故障数据来实现判断是否具备异常行为的容错能力,具体地,可以在原有服务方法的实现逻辑之前或之后注入故障数据,其中,该故障数据的编写(可以通过Java等编程语言编写)是在服务方法实现内部完成,会使得每次新增故障类型(或故障行为)和/或注入条件时需要发布新的应用代码,以更新相应的应用和业务系统,而相应的应用和业务系统也需要对故障数据进行编译等处理,从而使得故障注入逻辑较复杂,故障注入效率低下,因此,需要提供一种更简单快捷、故障注入效率更高的方案。
技术实现思路
本说明书实施例的目的是提供一种故障注入方法、装置及设备,以提供一种更简单快捷、故障注入效率更高的方案。为实现上述技术方案,本说明书实施例是这样实现的:本说明书实施例提供的一种故障注入方法,包括:拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。可选地,所述对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:获取所述目标故障注入逻辑对应的故障类型,所述故障类型包括前置类和非前置类;如果所述故障类型为前置类,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。可选地,所述前置类包括抛错、延迟和篡改参数数值,所述如果所述故障类型为前置类,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:如果所述故障类型为前置类中的第一子类,则根据所述第一子类,判断是否在调用所述目标服务方法前,对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,其中,所述第一子类为抛错、延迟或篡改参数数值。可选地,所述目标故障描述信息是通过领域专用语言DSL编写。可选地,所述目标故障描述信息中包括多个关键字段,所述多个关键字段分别用于表征进行故障注入的服务方法的标识和调用参数的数值,以及注入的故障逻辑的内容。可选地,所述目标故障描述信息的多个关键字段分别为FROM、WHERE和UPDATE。可选地,所述方法还包括:对所述目标故障描述信息的内容进行分析,分别得到每个关键字段对应的内容;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:如果得到的所述关键字段对应的内容与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。可选地,所述对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑之后,所述方法还包括:利用Java工具JavaInstrument或面向切面编程AOP机制,对所述目标故障注入逻辑对应的调用参数的数值或所述调用参数的返回值进行修改,以更新所述目标故障注入逻辑。本说明书实施例提供的一种故障注入装置,包括:请求拦截模块,用于拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;注入模块,用于如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。可选地,所述装置通过面向切面编程AOP机制确定。可选地,所述注入模块,包括:类型获取单元,用于获取所述目标故障注入逻辑对应的故障类型,所述故障类型包括前置类和非前置类;注入单元,用于如果所述故障类型为前置类,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。可选地,所述前置类包括抛错、延迟和篡改参数数值,所述注入单元,用于如果所述故障类型为前置类中的第一子类,则根据所述第一子类,判断是否在调用所述目标服务方法前,对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,其中,所述第一子类为抛错、延迟或篡改参数数值。可选地,所述目标故障描述信息是通过领域专用语言DSL编写。可选地,所述目标故障描述信息中包括多个关键字段,所述多个关键字段分别用于表征进行故障注入的服务方法的标识和调用参数的数值,以及注入的故障逻辑的内容。可选地,所述目标故障描述信息的多个关键字段分别为FROM、WHERE和UPDATE。可选地,所述装置还包括:分析模块,用于对所述目标故障描述信息的内容进行分析,分别得到每个关键字段对应的内容;所述注入模块,用于如果得到的所述关键字段对应的内容与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。可选地,所述装置还包括:数据更新模块,用于利用Java工具JavaInstrument或面向切面编程AOP机制,对所述目标故障注入逻辑对应的调用参数的数值或所述调用参数的返回值进行修改,以更新所述目标故障注入逻辑。本说明书实施例提供的一种故障注入设备,所述故障注入设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。由以上本说明书实施例提供的技术方案可见,本说明书实施例通过拦截目标服务方法的调用请求,该调用请求中包括目标服务方法的标识和调用参数的数值,在预定的目标故障描述信息与目标服务方法的标识和调用参数的数值相匹配的情况下,对目标服务方法注入目标故障描述信息对应的目标故障注入逻辑,以确定执行目标故障注入逻辑产生的故障结果,目标故障描述信息包括进行故障注入的服务方法的标识和服务方法对应的调用参数的数值,这样,仅需要通过故障描述信息中描述的进行故障注入的服务方法的标识和服务方法对应的调用参数的数值等信息,即可对业务系统中的服务方法进行选择,并进行相应的目标故障注入逻辑的注入,从而得到执行目标故障注入逻辑产生的故障结果,而不需要编写上述进行故障注入的服务方法的标识和服务方法对应的调用参数的数值,以及目标故障注入逻辑等信息的相关程序代码,本文档来自技高网...

【技术保护点】
1.一种故障注入方法,包括:拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。

【技术特征摘要】
1.一种故障注入方法,包括:拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,以确定执行所述目标故障注入逻辑产生的故障结果,所述目标故障描述信息包括进行故障注入的服务方法的标识和所述服务方法对应的调用参数的数值。2.根据权利要求1所述的方法,所述对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:获取所述目标故障注入逻辑对应的故障类型,所述故障类型包括前置类和非前置类;如果所述故障类型为前置类,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。3.根据权利要求2所述的方法,所述前置类包括抛错、延迟和篡改参数数值,所述如果所述故障类型为前置类,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:如果所述故障类型为前置类中的第一子类,则根据所述第一子类,判断是否在调用所述目标服务方法前,对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,其中,所述第一子类为抛错、延迟或篡改参数数值。4.根据权利要求1所述的方法,所述目标故障描述信息是通过领域专用语言DSL编写。5.根据权利要求1所述的方法,所述目标故障描述信息中包括多个关键字段,所述多个关键字段分别用于表征进行故障注入的服务方法的标识和调用参数的数值,以及注入的故障逻辑的内容。6.根据权利要求5所述的方法,所述目标故障描述信息的多个关键字段分别为FROM、WHERE和UPDATE。7.根据权利要求5或6所述的方法,所述方法还包括:对所述目标故障描述信息的内容进行分析,分别得到每个关键字段对应的内容;如果预定的目标故障描述信息与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑,包括:如果得到的所述关键字段对应的内容与所述目标服务方法的标识和调用参数的数值相匹配,则对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑。8.根据权利要求1所述的方法,所述对所述目标服务方法注入所述目标故障描述信息对应的目标故障注入逻辑之后,所述方法还包括:利用Java工具JavaInstrument或面向切面编程AOP机制,对所述目标故障注入逻辑对应的调用参数的数值或所述调用参数的返回值进行修改,以更新所述目标故障注入逻辑。9.一种故障注入装置,包括:请求拦截模块,用于拦截目标服务方法的调用请求,所述调用请求中包括所述目标服务方法的标识和调用参数的数值;注入模块,用于如果预定的目标故障描述信息与...

【专利技术属性】
技术研发人员:邱硕
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1