This specification embodiment provides a method and a device and electronic device to implement a service degradation. The interceptor can intercept the execution of the current code to be executed before any code of the business program is executed; for non critical code that does not involve the basic functions of the business program, the current code can be collected based on the history. The execution result of the current code determines whether there is an exception in the current code, and when the current code has an exception, the post code is skipped directly over the current code to achieve the service demotion.
【技术实现步骤摘要】
实现业务降级的方法及装置和电子设备
本说明书实施例涉及互联网
,尤其涉及一种实现业务降级的方法及装置和电子设备。
技术介绍
业务程序通常可以是由一系列具有先后执行顺序的代码构成的。在业务程序运行时,实质是按照代码之间的先后顺序依次执行,从而实现业务提供的功能或者服务。业务降级是指业务程序中某代码出现异常无法解决的情况下,跳过该代码执行后续代码的机制。例如,提供数据查询服务的业务,该业务执行过程中会将查询结果进行缓存,以减轻数据库的压力。但是,缓存服务的可靠性一般是难以保障的,也就是说缓存服务偶尔会出现服务不可用的情况,从而导致数据查询失败。为了避免由于某个功能出现异常而导致整体功能不可用的情况,通常可以引入业务降级机制来保证业务基本功能依然可以实现。现有的业务降级,会在某个代码出现异常时,捕获异常代码,然后可以尝试去容错,即反复执行该代码。现有业务降级的方式,由于进行去容错,会导致过多的系统开销。需要提供一种更为节约开销地业务降级方案。
技术实现思路
本说明书实施例提供的一种实现业务降级的方法及装置和电子设备:根据本说明书实施例的第一方面,提供一种实现业务降级的方法,所述方法包括:拦截器在业务程序的任意代码执行前,拦截该待执行的当前代码的执行;其中,所述业务程序由若干具有先后执行顺序的代码构成;识别所述当前代码是否存在表示非关键代码的标记;其中,所述非关键代码不涉及业务程序的基本功能;在所述当前代码为非关键代码时,基于历史采集到的所述当前代码的执行结果判断所述当前代码是否存在异常;在所述当前代码存在异常时,跳过所述当前代码执行后一代码。根据本说明书实施例 ...
【技术保护点】
1.一种实现业务降级的方法,所述方法包括:拦截器在业务程序的任意代码执行前,拦截该待执行的当前代码的执行;其中,所述业务程序由若干具有先后执行顺序的代码构成;识别所述当前代码是否存在表示非关键代码的标记;其中,所述非关键代码不涉及业务程序的基本功能;在所述当前代码为非关键代码时,基于历史采集到的所述当前代码的执行结果判断所述当前代码是否存在异常;在所述当前代码存在异常时,跳过所述当前代码执行后一代码。
【技术特征摘要】
1.一种实现业务降级的方法,所述方法包括:拦截器在业务程序的任意代码执行前,拦截该待执行的当前代码的执行;其中,所述业务程序由若干具有先后执行顺序的代码构成;识别所述当前代码是否存在表示非关键代码的标记;其中,所述非关键代码不涉及业务程序的基本功能;在所述当前代码为非关键代码时,基于历史采集到的所述当前代码的执行结果判断所述当前代码是否存在异常;在所述当前代码存在异常时,跳过所述当前代码执行后一代码。2.根据权利要求1所述的方法,所述方法还包括:在所述当前代码不存在异常时,执行所述当前代码;在执行完所述当前代码后,采集所述当前代码的执行结果。3.根据权利要求2所述的方法,所述在所述当前代码为非关键代码时,基于历史采集到的所述当前代码的执行结果判断所述当前代码是否存在异常,具体包括:在所述当前代码为非关键代码时,获取历史采集到的所述当前代码的执行结果;判断所述执行结果中执行失败的比例是否达到阈值;在所述执行结果中执行失败的比例达到阈值时,确定所述当前代码存在异常。4.根据权利要求2所述的方法,所述在所述当前代码为非关键代码时,基于历史采集到的所述当前代码的执行结果判断所述当前代码是否存在异常,具体包括:在所述当前代码为非关键代码时,获取历史采集到的所述当前代码的执行结果;根据每个执行结果的时间戳,将所述执行结果划分若干时间段;在所述时间段内的执行结果均为执行失败时,将所述时间段标记为不可用;在连续N个时间段均标记为不可用时,确定所述当前代码存在可用性问题。5.根据权利要求4所述的方法,所述N,根据如下方式确定:将所划分的时间段的数量乘以预设比例,得到N;所述预设比例的范围为(0,100%];或者,将预设数值确定为N;所述预设数值小于等于所划分时间段的数量。6.根据权利要求1所述的方法,所述方法还包括:在所述当前代码存在异常时,标记所述当前代码异常,使得后续执行该代码前,当识别存在异常标记时,直接跳过该代码执行后一代码。7.根据权利要求6所述的方法,所述方法还包括:当获取到针对代码的重置指令后,删除所述代码的异常标记,删除历史采集到的该代码的执行结果;所述重置指令在排除代码异常时生成。8.一种实现业务降级的装置,所述装置包括:拦截单元,拦截器在业务程序的任意代码执行前,拦截该待执行的当前代码的执行;其中,所述业务程序由若干具有先后执行顺序的代码构成;识别单元,识别所述当前代码是否存在表示非关键代码的标记;其中,...
【专利技术属性】
技术研发人员:仲良骏,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。