一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

异常接口容错方法、装置、设备及存储介质与流程

2022-09-03 15:00:42 来源:中国专利 TAG:


1.本发明涉及互联网技术领域,特别是涉及一种异常接口容错方法、装置、设备及存储介质。


背景技术:

2.目前,随着互联网技术的快速发展,在app里面通常存在首页的高频访问的接口,在面向b端,c端的app里面,往往会存在由于异常的网络请求堵塞,而导致正常的业务无法操作,在某个业务组件的服务遇到问题时,若没有及时处理问题,容易造成资源占用,通常会影响其他业务组件的其他接口,进而影响到正常的业务流程,造成数据阻塞导致响应不及时,增加了系统宕机的风险与不稳定性,进而影响用户体验。


技术实现要素:

3.本发明提供一种异常接口容错方法、装置、设备及存储介质,能够在接口发生异常时,动态调整接口的访问流量,从而减少资源占用以及异常对其他业务流程的影响,提升用户体验。
4.为解决上述技术问题,本发明采用的一个技术方案是:提供一种异常接口容错方法,包括:
5.获取接口信息,根据所述接口信息识别异常接口并对识别出的异常接口进行标记处理;
6.根据所述接口信息预配置所述异常接口的容错策略并将所述异常接口与所述容错策略进行关联处理;
7.接收业务请求,拦截所述业务请求并读取所述业务请求中的接口标识,检测所述接口标识指向的目标接口是否为异常接口;
8.当检测到所述目标接口标识为异常接口时,查找与所述异常接口对应的容错策略作为所述目标接口的容错策略,并根据所述容错策略获取响应结果响应于所述业务请求。
9.根据本发明的一个实施例,所述获取接口信息,根据所述接口信息识别异常接口并对识别出的异常接口进行标记处理包括:
10.获取所述接口信息,所述接口信息包括历史业务请求的接口url、接口返回状态码以及所述历史业务请求的处理耗时,所述接口url至少包括所述接口标识;
11.在第一预设时间范围内,根据所述处理耗时统计同一接口的所述历史业务请求的超时占比,根据所述超时占比确定待监控接口,并对所述待监控接口进行第一次标记处理;
12.实时监控所述待监控接口并在第二预设时间范围内计算所述待监控接口的平均连接耗时,根据所述平均连接耗时识别异常接口,并对识别出的异常接口进行第二次标记处理。
13.根据本发明的一个实施例,所述在第一预设时间范围内,根据所述处理耗时统计同一接口的所述历史业务请求的超时占比,根据所述超时占比确定待监控接口,并对所述
待监控接口进行第一次标记处理包括:
14.在第一预设时间范围内,将同一接口的各所述历史业务请求的处理耗时与第一预设时间阈值进行比对,计算所述处理耗时超过所述第一预设时间阈值的所述历史业务请求的数量与同一接口的所有所述历史业务请求的总数的比值,获得所述超时占比;
15.将所述超时占比与预设值进行比对,判断所述超时占比是否大于所述预设值;
16.若是,则确定所述接口为待监控接口并对所述待监控接口进行第一次标记处理。
17.根据本发明的一个实施例,所述在第二预设时间范围内计算所述待监控接口的平均连接耗时,根据所述平均连接耗时识别异常接口,并对识别出的异常接口进行第二次标记处理包括:
18.在第二预设时间范围内,计算所述待监控接口的所有所述历史业务请求的处理耗时之和与所述待监控接口的所述历史业务请求的总数的比值,获得平均连接耗时;
19.将所述平均耗时与第二预设时间阈值进行比对,判断所述平均耗时是否大于所述第二预设时间阈值;
20.若是,则确定所述待监控接口为异常接口,并对所述异常接口进行第二次标记处理。
21.根据本发明的一个实施例,所述在第一预设时间范围内,根据所述处理耗时统计同一接口的所述历史业务请求的超时占比之前,还包括:
22.根据所述接口返回状态码识别异常数据并剔除异常数据。
23.根据本发明的一个实施例,所述根据所述接口信息预配置所述异常接口的容错策略包括:
24.根据所述接口信息识别所述异常接口的接口类型;
25.根据所述接口类型预配置所述容错策略。
26.根据本发明的一个实施例,所述接口类型包括第一组件接口和第二组件接口,所述根据所述接口类型预配置所述容错策略包括:
27.当所述接口类型为第一组件接口时,所述容错策略为将空数据作为响应结果;
28.当所述接口类型为第二组件接口时,所述容错策略为从redis缓存中获取redis值作为响应结果。
29.为解决上述技术问题,本发明采用的另一个技术方案是:提供一种异常接口容错装置,包括:
30.获取模块,用于获取接口信息,根据所述接口信息识别异常接口并对识别出的异常接口进行标记处理;
31.关联模块,用于根据所述接口信息预配置所述异常接口的容错策略并将所述异常接口与所述容错策略进行关联处理;
32.检测模块,用于接收业务请求,拦截所述业务请求并读取所述业务请求中的接口标识,检测所述接口标识指向的目标接口是否为异常接口;
33.响应模块,用于当检测到所述目标接口为异常接口时,查找与所述异常接口对应的容错策略作为所述目标接口的容错策略,并根据所述容错策略获取响应结果响应于所述业务请求。
34.为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机设备,包
括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的异常接口容错方法。
35.为解决上述技术问题,本发明采用的再一个技术方案是:提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述异常接口容错方法。
36.本发明的有益效果是:通过识别异常接口并对异常接口预配置容错策略,在接收业务请求时,通过异常接口检测进行容错策略的匹配,能够在接口发生异常时,动态调整接口的访问流量,从而减少资源占用以及异常对其他业务流程的影响,提高业务处理效率和用户体验。
附图说明
37.图1是本发明一实施例的异常接口容错方法的流程示意图;
38.图2是本发明另一实施例的异常接口容错方法的流程示意图;
39.图3是本发明实施例的异常接口容错装置的结构示意图;
40.图4是本发明实施例的计算机设备的结构示意图;
41.图5是本发明实施例的计算机存储介质的结构示意图。
具体实施方式
42.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
44.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
45.图1是本发明一实施例的异常接口容错方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括步骤:
46.步骤s101:获取接口信息,根据接口信息识别异常接口并对识别出的异常接口进
行标记处理。
47.在步骤s101中,在一种应用场景中,异常接口容错框架可以包括:网关、业务组件以及数据库或关联方,网关可以与多个业务组件关联,每个业务组件中可以设置一个拦截器和多个接口,接口与数据库或其他关联方相连。例如,业务组件包括账户组件、消息组件以及保险组件,在该实施例中账户组件和保险组件为核心业务组件,消息组件为非核心业务组件,非核心业务组件在系统出现问题时,允许在一段时间内数据延迟或者获取的相关数据不准确等。用户在访问app时,发出的业务请求通过网关进入业务组件中以调用相关接口的业务数据,在网关处可以通过业务请求获取接口url,通过接口url的上下文确定所要转发的业务组件。
48.进一步地,在网关处可以获取各接口的接口信息,将接口信息存储到消息队列中进行消息消费。接口信息包括历史业务请求的接口url、接口返回状态码以及历史业务请求的处理耗时。在实际过程中,网关可以根据业务请求中所包含的接口url来确定请求调用的接口,请求调用结束后,根据历史业务请求的处理耗时识别异常接口并对识别出的异常接口进行标记处理。
49.业务请求可以包含有统一资源定位符(uniform resource locator,url),接口url至少包括域名标识和接口标识。例如,若接口url为http://127.0.0.1/project/api/account/getuserinfo,所包含的接口标识为/project/api/account,表示网关将业务请求转发到账户体系组件,调用account组件;若接口url为http://127.0.0.1/project/api/notify/gethomepagenumber,所包含的接口标识为/project/api/notify,表示网关将业务请求转发到消息组件,调用notify组件;若接口url为http://127.0.0.1/project/api/insurance/getinsuranceinfobyuser,所包含的接口标识为/project/api/insurance,表示网关将业务请求转发到保险组件,调用insurance组件。
50.接口返回状态码指的是一个业务请求转发到对应的接口后,通过接口进行请求响应的状态。接口返回状态码包括正常状态码和异常状态码,正常状态码例如200,异常状态码例如404、502、500等。在一种场景中,业务请求成功响应,接口返回状态码为200,在另一种场景中,系统出现错误,导致业务请求未成功响应,接口返回状态码可以为404、502或500。
51.处理耗时指的是一个业务请求从网关发出开始到网关接收到该业务请求的响应结果为止所需时长。
52.进一步地,请参见图2,步骤s101还包括以下步骤:
53.步骤s201:获取接口信息,接口信息包括历史业务请求的接口url、接口返回状态码以及历史业务请求的处理耗时,接口url至少包括接口标识。
54.步骤s201的相关内容在前述已进行详细描述,在此不再赘述。
55.步骤s202:在第一预设时间范围内,根据处理耗时统计同一接口的历史业务请求的超时占比,根据超时占比确定待监控接口,并对待监控接口进行第一次标记处理。
56.在步骤s202中,在第一预设时间范围内,将同一接口的各历史业务请求的处理耗时与第一预设时间阈值进行比对,计算处理耗时超过第一预设时间阈值的历史业务请求的数量与同一接口的所有历史业务请求的总数的比值,获得超时占比;将超时占比与预设值进行比对,判断超时占比是否大于预设值;若是,则确定接口为待监控接口并对待监控接口
进行第一次标记处理,存储标记处理结果。
57.在一种可实现的实施方式中,第一预设时间、第一预设时间阈值以及预设值可以动态调整,具体可以为运维人员手动设置,也可以由计算机自动设置,例如,第一预设时间为1分钟,第一预设时间阈值为2秒,预设值为80%。第一预设时间阈值为业务请求的超时时间,当历史业务请求的处理耗时大于第一预设时间阈值时,历史业务请求的处理耗时超时。
58.在一种场景中,假设job定时任务监控1分钟内,接口1有10个历史业务请求,将每个历史业务请求的处理耗时与2秒进行比对,其中9个历史业务请求的处理耗时超过2秒,则超时占比为9/10=0.9,即在1分钟内,接口1有90%的业务请求的处理耗时超时,而90%大于80%,所以,确定接口1为待监控接口并对待监控接口进行第一次标记处理,以便后续能够精准监控该接口的动态。
59.在一种可实现的实施方式中,在第一预设时间范围内,根据处理耗时统计同一接口的历史业务请求的超时占比之前,还包括:根据接口返回状态码识别异常数据并剔除异常数据,以提高数据的可靠性以及后续数据计算的准确率。
60.步骤s203:实时监控待监控接口并在第二预设时间范围内计算待监控接口的平均连接耗时,根据平均连接耗时识别异常接口,并对识别吃的异常接口进行第二次标记处理。
61.在步骤s203中,在第二预设时间范围内,计算待监控接口的所有历史业务请求的处理耗时之和与待监控接口的历史业务请求的总数的比值,获得平均连接耗时;将平均耗时与第二预设时间阈值进行比对,判断平均耗时是否大于第二预设时间阈值;若是,则确定待监控接口为异常接口,并对异常接口进行第二次标记处理,存储标记处理结果。
62.在一种可实现的实施方式中,第二预设时间与第一预设时间的时长可以相同或不同,第二预设时间阈值与第一预设时间阈值可以相同或不同。第二预设时间和第二预设时间阈值可以动态调整,具体可以为运维人员手动设置,也可以由计算机自动设置,例如,第二预设时间为1分钟,第二预设时间阈值为2秒。第二预设时间阈值为接口的超时时间,当待监控接口的平均连接耗时大于第二预设时间阈值时,待监控接口的平均连接耗时超时。
63.在一种场景中,假设job定时任务监控1分钟内,待监控接口1有10个历史业务请求,这10个历史业务请求的处理耗时之和为30秒,则该待监控接口1的平均连接耗时为30/10=3秒,即该待监控接口1的平均连接耗时超过2秒,则确定待监控接口1为异常接口,并对异常接口进行第二次标记处理。
64.步骤s102:根据接口信息预配置异常接口的容错策略并将异常接口与容错策略进行关联处理。
65.在步骤s102中,接口信息包括接口url,接口url中包含了接口标识,本实施例根据接口标识识别异常接口的接口类型,例如,接口url为http://127.0.0.1/project/api/notify/gethomepagenumber,所包含的接口标识为/project/api/notify,表示网关将业务请求转发到消息组件,调用notify组件,消息组件接口属于非核心业务组件接口类型。又如,接口url为http://127.0.0.1/project/api/account/getuserinfo,所包含的接口标识为/project/api/account,表示网关将业务请求转发到账户体系组件,调用account组件,账户体系组件属于核心业务组件接口类型。
66.在一种可实现的实施方式中,接口类型包括第一组件接口和第二组件接口,第一组件接口为核心业务组件接口或非核心业务组件接口,第二组件接口为核心业务组件接口
或非核心业务组件接口,第一组件接口和第二组件接口的类型不同。
67.根据接口类型预配置容错策略,不同的接口类型配置不同的容错策略,容错策略与接口类型一一对应设置。在一种可实现的实施方式中,若第一组件接口为非核心业务组件接口,第二组件接口为核心业务组件接口,则根据接口类型预配置容错策略包括:当接口类型为第一组件接口时,容错策略为将空数据作为响应结果;当接口类型为第二组件接口时,容错策略为从redis缓存中获取redis值作为响应结果。
68.在一种可实现的实施方式中,将异常接口与容错策略以键值对的形式进行关联处理,异常接口与容错策略之间的关联关系为(“异常接口=容错策略”)。假设,业务组件a的接口1为异常接口,当异常接口的接口类型为第一组件接口时,容错策略为将空数据作为响应结果,则有业务组件a接口1=返回空数据的关联关系。假设,业务组件a的接口1为异常接口,当异常接口的接口类型为第二组件接口时,容错策略为从redis缓存中获取redis值作为响应结果,则有业务组件a接口1=返回redis值的关联关系。
69.该实施例在获取异常接口时,直接预配置对应的容错策略,并以键值对的形式进行预存储,能够在后续进行相同接口调用请求时直接利用预存储的关联关系进行容错策略匹配,提高处理效率和用户体验。
70.步骤s103:接收业务请求,拦截业务请求并读取业务请求中的接口标识,检测接口标识指向的目标接口是否为异常接口。
71.在步骤s103中,每个业务组件设置有拦截器,所有通过请求到业务组件的业务请求都会通过拦截器,在拦截器中通过redis存储获取接口的标记。具体可以通过识别接口url中的接口标识,判断接口标识所指向的目标接口是否是被标记的异常接口。
72.步骤s104:当检测到目标接口为异常接口时,查找与异常接口对应的容错策略作为目标接口的容错策略,并根据容错策略获取响应结果响应于业务请求。
73.在步骤s104中,当业务请求的目标接口为异常接口时,匹配到对应该异常接口的容错策略,若容错策略是返回空数据,则直接在拦截器返回空数据;若容错策略是从redis缓存中获取redis值作为响应结果,则在拦截器读取redis值并返回。在其他实施例中,还可以存在其他容错策略,在此不再一一赘述。假设,存在业务组件a接口1=返回redis值的关联关系,当检测到业务组件a的接口1为异常接口,则根据业务组件a接口1=返回redis值的关联关系获得“返回redis值”的容错策略。
74.该实施例检测到异常接口则在拦截器直接处理并返回结果,缩短异常接口的业务请求处理时间,同时降低异常接口对关联方或数据库的访问量,防止资源占用,提高了业务处理效率和用户体验。
75.本发明实施例的异常接口容错方法通过识别异常接口并对异常接口预配置容错策略,在接收业务请求时,通过异常接口检测进行容错策略的匹配,能够在接口发生异常时,动态调整接口的访问流量,从而减少资源占用以及异常对其他业务流程的影响,提高业务处理效率和用户体验。
76.图3是本发明实施例的异常接口容错装置的结构示意图。如图3所示,该装置30包括获取模块31、关联模块32、检测模块33以及响应模块34。
77.获取模块31用于获取接口信息,根据接口信息识别异常接口并对识别出的异常接口进行标记处理;
78.关联模块32用于根据接口信息预配置异常接口的容错策略并将异常接口与容错策略进行关联处理;
79.检测模块33用于接收业务请求,拦截业务请求并读取业务请求中的接口标识,检测接口标识指向的目标接口是否为异常接口;
80.响应模块34用于当检测到目标接口标识为异常接口时,查找与异常接口对应的容错策略作为目标接口的容错策略,并根据容错策略获取响应结果响应于业务请求。
81.请参阅图4,图4为本发明实施例的计算机设备的结构示意图。如图4所示,该计算机设备40包括处理器41及和处理器41耦接的存储器42。
82.存储器42存储有用于实现上述任一实施例所述的异常接口容错的程序指令。
83.处理器41用于执行存储器42存储的程序指令以实现异常接口容错。
84.其中,处理器41还可以称为cpu(central processing unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
85.参阅图5,图5为本发明实施例的计算机存储介质的结构示意图。本发明实施例的计算机存储介质存储有能够实现上述所有方法的程序文件51,其中,该程序文件51可以以软件产品的形式存储在上述计算机存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的计算机存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
86.在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
87.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
88.以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献