掌桥专利:专业的专利平台
掌桥专利
首页

业务降级处理方法、装置、客户终端和计算机程序产品

文献发布时间:2023-06-19 19:30:30


业务降级处理方法、装置、客户终端和计算机程序产品

技术领域

本申请涉及业务处理技术领域,特别是涉及一种业务降级处理方法、装置、客户终端、计算机可读存储介质和计算机程序产品。

背景技术

随着互联网技术的不断发展,客户终端为满足用户的业务需求,需向服务器调用接口,以通过服务器提供的接口向用户提供业务服务。若服务器的资源较少时,客户终端调用接口可能会发生异常,无法为用户提供业务服务。

通常地,服务器可以通过业务降级处理的方式释放资源,以保证核心业务的正常高效运行。然而,上述方式会导致客户终端业务运行的稳定性低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高业务运行稳定性的业务降级处理方法、装置、客户终端、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种业务降级处理方法,应用于客户终端,所述方法包括:

当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象;

确定所述降级对象在网络请求层的拦截器,以及所述拦截器的生效开始时间;

对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求;

向服务器发送所述目标业务请求。

在一个实施例中,所述当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象,包括:

响应于业务触发请求,并向服务器发送所述业务处理请求;

获取所述服务器执行所述业务处理请求的反馈结果;

当所述反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,以及降级级别;

获取所述降级级别对应的降级对象。

在一个实施例中,所述对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求,包括:

当在所述生效开始时间后的最小发送周期内再次接收到所述业务触发请求时,对在所述生效开始时间后的最小发送周期内的所述降级对象的全部业务处理请求进行拦截处理,获得目标业务请求;其中,所述目标业务请求为所述最小发送周期后的所述降级对象的业务处理请求。

在一个实施例中,所述对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求,包括:

当在所述生效开始时间后的最小发送周期内再次接收到所述业务触发请求时,对在所述生效开始时间后的最小发送周期内的所述降级对象的预设比例的业务处理请求进行拦截处理,获得目标业务请求;

在一个实施例中,所述方法还包括:

当触发降级时间后的最小降级周期内的所述目标业务请求的反馈结果满足业务降级条件时,增加所述预设比例,增加所述降级级别;所述触发降级时间为确定降级对象的时间;增加所述降级级别后的降级程度大于当前的降级程度;

确定增加所述降级级别后的降级对象;

更新所述触发降级时间。

在一个实施例中,所述方法还包括:

当触发降级时间后的最小降级周期内的所述目标业务请求的反馈结果不满足业务降级条件时,降低所述预设比例,降低所述降级级别;降低所述降级级别后的降级程度小于当前的降级程度;

确定降低所述降级级别后的降级对象;

更新所述触发降级时间。

在一个实施例中,所述对在所述生效开始时间后的最小发送周期内的所述降级对象的预设比例的业务处理请求进行拦截处理,获取目标业务请求,包括:

控制生成在所述生效开始时间后的最小发送周期内的所述降级对象的业务处理请求对应的随机数;

根据所述随机数,对在所述生效开始时间后的最小发送周期内的所述降级对象的预设比例的业务处理请求进行拦截处理,获取目标业务请求。

第二方面,本申请提供一种业务降级处理装置,应用于客户终端,所述装置包括:

第一确定模块,用于当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象;

第二确定模块,用于确定所述降级对象在网络请求层的拦截器,以及所述拦截器的生效开始时间;

获取模块,用于对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求;

通信模块,用于向服务器发送所述目标业务请求。

在一个实施例中,所述第一确定模块,还用于:

响应于业务触发请求,并向服务器发送所述业务处理请求;

获取所述服务器执行所述业务处理请求的反馈结果;

当所述反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,以及降级级别;

获取所述降级级别对应的降级对象。

在一个实施例中,所述获取模块,还用于:

当在所述生效开始时间后的最小发送周期内再次接收到所述业务触发请求时,对在所述生效开始时间后的最小发送周期内的所述降级对象的全部业务处理请求进行拦截处理,获得目标业务请求;其中,所述目标业务请求为所述最小发送周期后的所述降级对象的业务处理请求。

在一个实施例中,所述获取模块,还用于:

当在所述生效开始时间后的最小发送周期内再次接收到所述业务触发请求时,对在所述生效开始时间后的最小发送周期内的所述降级对象的预设比例的业务处理请求进行拦截处理,获得目标业务请求。

在一个实施例中,所述装置还包括调整模块,所述调整模块,用于:

当触发降级时间后的最小降级周期内的所述目标业务请求的反馈结果满足业务降级条件时,增加所述预设比例,增加所述降级级别;所述触发降级时间为确定降级对象的时间;增加所述降级级别后的降级程度大于当前的降级程度;

确定增加所述降级级别后的降级对象;

更新所述触发降级时间。

在一个实施例中,所述装置还包括调整模块,所述调整模块,还用于:

当触发降级时间后的最小降级周期内的所述目标业务请求的反馈结果不满足业务降级条件时,降低所述预设比例,降低所述降级级别;降低所述降级级别后的降级程度小于当前的降级程度;

确定降低所述降级级别后的降级对象;

更新所述触发降级时间。

在一个实施例中,所述获取模块,还用于:

控制生成在所述生效开始时间后的最小发送周期内的所述降级对象的业务处理请求对应的随机数;

根据所述随机数,对在所述生效开始时间后的最小发送周期内的所述降级对象的预设比例的业务处理请求进行拦截处理,获取目标业务请求。

第三方面,本申请还提供了一种客户终端。所述客户终端包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象;

确定所述降级对象在网络请求层的拦截器,以及所述拦截器的生效开始时间;

对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求;

向服务器发送所述目标业务请求。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象;

确定所述降级对象在网络请求层的拦截器,以及所述拦截器的生效开始时间;

对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求;

向服务器发送所述目标业务请求。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象;

确定所述降级对象在网络请求层的拦截器,以及所述拦截器的生效开始时间;

对在所述生效开始时间后的所述降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求;

向服务器发送所述目标业务请求。

上述业务降级处理方法、装置、客户终端、计算机可读存储介质和计算机程序产品,客户终端通过根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象,并确定降级对象在网络请求层的拦截器,以及拦截器的生效开始时间。客户终端通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求,并向服务器发送目标业务请求。本申请从客户终端角度考虑对业务的降级处理,客户终端通过基于服务器返回的业务处理请求的反馈结果,可以自适应地进行业务降级处理,并通过拦截客户终端向服务器发送的部分业务处理请求,使得可以降低服务器处理请求的数量,释放服务器端的资源,这样,服务器在后续处理来自客户终端的业务处理请求时,可以提高客户终端侧的业务运行的稳定性。

附图说明

图1为一个实施例中业务降级处理方法的应用环境图;

图2为一个实施例中业务降级处理方法的流程示意图;

图3为一个实施例中当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象的流程示意图;

图4为一个实施例中客户终端对业务处理请求进行拦截处理的示意图;

图5为一个实施例中服务器端的应用系统的QPS优化前和优化后的示意图;

图6为一个实施例中客户终端拦截降级对象的业务处理请求的示意图;

图7为一个实施例中业务降级处理方法的流程示意图;

图8为一个实施例中业务降级处理方法的流程示意图;

图9为一个实施例中业务降级处理方法的流程示意图;

图10为一个实施例中业务降级处理装置的结构框图;

图11为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

当服务器压力剧增的情况下,根据实际业务情况及流量,服务器可以对一些服务和页面有策略的不处理或换种简单的方式处理进行业务降级,从而释放服务器侧的资源以保证核心业务正常运作或高效运作。

然而,现有业务降级技术主要是为服务端设计的系统有限的资源的合理协调技术,而作为移动互联网应用系统的重要组成部分之一的客户终端,尚无成熟的技术,来保障用户在有限的资源下在高峰期的核心业务体验不受影响。

特别地,对于几十万级每秒查询率(Queries Per Second,QPS)的企业级应用系统,在高峰期,单纯依靠现有的服务端业务降级技术,因系统过于庞大,存在降级策略生效缓慢、服务恢复滞后、业务降级影响面过大等问题。而且,当服务器压力剧增时,通过从服务端的角度来实现业务降级,会使得客户终端处于被动响应的地位,也会使得客户终端业务运行的稳定性低。

有鉴于此,本申请提供一种业务降级处理方法,该方法应用于客户终端。本申请实施例提供的业务降级处理方法,可以应用于如图1所示的应用环境中。其中,客户终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。

具体地,当客户终端102根据服务器104返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,可以确定降级对象,并确定降级对象在网络请求层的拦截器以及拦截器的生效开始时间。客户终端102通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,可以获取目标业务请求,并向服务器104发送目标业务请求。

其中,客户终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种业务降级处理方法,以该方法应用于图1中的客户终端102为例进行说明,包括以下步骤:

S202,当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象。

在本申请中,通过采用拦截器技术,客户终端可以基于设置在网络请求层中的拦截器获取服务器返回的对已执行的业务处理请求的反馈结果。客户终端根据反馈结果可以自适应地确定是否进行业务降级,不需要依赖于服务器的业务降级处理,避免处于被动地位。其中,客户终端若根据反馈结果确定满足业务触发条件时,确定降级对象。降级对象用于指示与业务处理请求所对应的降级对象,降级对象可以包括下述至少一种:与业务处理请求对应的用户级别以及与业务处理请求对应的接口名称等。

在考虑到移动互联网时代的运营策略通常具有区域性,只在个别地区开展促销活动时造成的服务端的应用系统的压力时,若所有的客户终端均因此受到业务降级的影响,也是不公平的。为避免此类情况的发生,降级对象还可以包括客户终端发送业务处理请求时所在的地区。因此,降级对象可以包括下述至少一种:与业务处理请求对应的用户级别、与业务处理请求对应的接口名称、或客户终端发送业务处理请求时所在的地区。其中,客户终端发送业务处理请求时所在的地区可以包括开展促销活动的地区等。

可以理解,在开展促销活动的地区的客户终端向服务器发送业务处理请求时,若客户终端根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件,客户终端通过在网络请求层添加的拦截器可以从网络请求协议层将开展促销活动的地区设置为进行拦截的地区,这样,客户终端可以对该开展促销活动的地区的业务处理请求进行拦截。

可以理解,业务处理请求中可以包括发送业务处理请求时所在的地区、与业务处理请求对应的用户级别以及与业务处理请求对应的接口名称等,当客户终端根据反馈结果确定满足业务降级条件时,可以对发送业务处理请求时所在的地区、与业务处理请求对应的用户级别以及与业务处理请求对应的接口名称中的至少一个进行降级处理。

S204,确定降级对象在网络请求层的拦截器,以及拦截器的生效开始时间。

在本实施例中,通过采用拦截器技术,在网络请求层添加拦截器,使得客户终端在根据反馈结果确定满足业务降级条件时,可以根据所要降级的降级对象在网络请求层确定与降级对象对应的拦截器,并确定拦截器的生效开始时间。其中,拦截器用于拦截客户终端向服务器发送的业务处理请求,拦截器的生效开启时间用于指示对降级对象的业务处理请求进行拦截的起始时间,生效开启时间可以设置为确定满足业务降级条件时的时间。

其中,在网络请求层添加拦截器时,网络请求层中设置的拦截器用于拦截对应的业务处理请求。例如,网络请求层中添加的拦截器1用于拦截地区对应的业务处理请求,网络请求层中添加的拦截器2用于拦截用户级别对应的业务处理请求,网络请求层中添加的拦截器3用于拦截服务器返回的响应结果,网络请求层中添加的拦截器4用于拦截接口名称对应的业务处理请求。

S206,对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求。

在本实施例中,客户终端通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,使得客户终端可以降低向服务器发送的业务请求的数量,以降低服务器端的压力,释放服务器端的资源。

可以理解,客户终端对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理时,所拦截的业务处理请求为无效请求,无效请求用于指示客户终端无法调用服务器端的接口,客户终端可以将无效请求直接丢弃,并构造并返回友好提示报文,友好提示报文包含友好提示文案的报文,比如提示请稍后重试,以尽可能地降级用户反感情绪。

可以理解,客户终端对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理时,客户终端也可以快速按约定执行业务层的兜底策略,从而有效提高用户体验。其中,兜底策略是按业务场景设计的扩展部分,比如提供入口引导用户可顺便体验客户终端中启动的应用程序的其他业务等。

S208,向服务器发送目标业务请求。

综上,在图2所示的实施例中,客户终端通过根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象,并确定降级对象在网络请求层的拦截器,以及拦截器的生效开始时间。客户终端通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求,并向服务器发送目标业务请求。本申请从客户终端角度考虑对业务的降级处理,客户终端通过基于服务器返回的业务处理请求的反馈结果,可以自适应地进行业务降级处理,并通过拦截客户终端向服务器发送的部分业务处理请求,使得可以降低服务器处理请求的数量,释放服务器端的资源,这样,服务器后续在处理来自客户终端的业务处理请求时,可以提高客户终端侧的业务运行的稳定性。

在图2所示的实施例的基础上,在其中一个实施例中,如图3所示,提供了一种当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象的流程示意图,包括:

S302,响应于业务触发请求,并向服务器发送业务处理请求。

在本实施例中,用户启动应用程序后,当用户通过对应用程序中的业务进行点击或触摸操作时,可以生成对应的业务触发请求。客户终端响应于业务触发请求,可以生成对应的业务处理请求,并向服务器发送业务处理请求。其中,业务触发请求可以指的是用户对领券页面的触发请求,业务处理请求可以指的是客户终端对领券页面的打开请求。

S304,获取服务器执行业务处理请求的反馈结果。

在本实施例中,业务处理请求包括客户终端向服务器请求调用的接口,通过该接口名称,服务器可以向客户终端提供该接口,使得客户终端可以显示业务处理结果。因此,反馈结果用于指示对业务处理请求对应的接口的调用结果。例如,业务处理请求为客户终端对领券页面的打开请求,在接口调用正常时,客户终端可以显示领券页面。在接口调用异常时,客户终端无法显示领券页面,同时,客户终端可以显示提示信息,如请稍后重试等。

S306,当反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,以及降级级别。

在本实施例中,当反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,说明客户终端向服务器发送的业务处理请求发生异常,因此,可以确定满足业务降级条件以及降级级别。

其中,接口调用超时是指接口已经以超时错误码响应结束。接口被流控是指服务器对接口进行流控限制,被限制的调用会被服务器以特定响应码拒绝。接口响应时间超过阈值是指接口以200响应码结束,但响应时间超过了预期阈值。服务器技术故障是指接口以非200响应码结束,不包含约定业务异常响应码。例如,服务器技术故障可以包括50x异常,50x异常是指接口响应码为50x,50x异常为服务器错误,比如500服务端内部错误、502错误网关等。

S308,获取降级级别对应的降级对象。

在本实施例中,降级级别与降级对象具有对应关系。降级对象可以包括下述至少一个:客户终端发送业务处理请求时所在的地区、与业务处理请求对应的用户级别、与业务处理请求对应的接口名称。

例如,以降级对象为接口名称为例,降级级别为一级时,降级级别对应的接口名称可以包括普通接口,如广告接口等。降级级别为二级时,降级级别对应的接口名称可以包括一般接口以及普通接口,如广告接口以及订单列表接口等。降级级别为三级时,降级级别对应的接口名称可以包括一般接口、普通接口以及重要接口等,如广告查询接口、订单列表接口以及领券接口等。其中,可以理解,在任何情况下,服务器仅向客户终端提供核心接口,如登录接口以及支付接口等,以保证核心业务的正常运行。

综上,在图3所示的实施例中,客户终端通过响应于业务触发请求,可以向服务器发送业务处理请求,通过获取服务器执行业务处理请求的反馈结果,当反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,以及降级级别,并获取降级级别对应的降级对象。客户终端通过将反馈结果作为触发客户终端的自适应业务降级参考依据,使得可以主动地来感知服务器端的处理压力情况,并通过拦截部分业务处理请求,降低服务器处理请求的数量,释放服务器端的资源,这样,服务器在后续处理来自客户终端的业务处理请求时,可以提高客户终端侧的业务运行的稳定性。

在图2和图3所示的内容,在一个实施例中,如图4所示,提供了一种客户终端对业务处理请求进行拦截处理的示意图。其中,网络请求层中添加的拦截器1用于拦截地区对应的业务处理请求,网络请求层中添加的拦截器2用于拦截用户级别对应的业务处理请求,网络请求层中添加的拦截器3用于拦截服务器返回的接口响应(即反馈结果),网络请求层中添加的拦截器4-6用于拦截接口名称对应的业务处理请求。具体地,拦截器4用于拦截普通接口对应的业务处理请求,拦截器5用于拦截一般接口对应的业务处理请求,拦截器6用于拦截重要接口对应的业务处理请求。

假设需要对第三地区和第四地区的非VIP用户的业务处理请求进行拦截,并在服务器向客户终端返回的是反馈结果是非200响应码时,客户终端可以根据业务处理请求对应的接口的重要程度自适应启动一级降级、二级降级和三级降级。其中,根据接口的重要性可以分为普通接口、一般接口、重要接口以及核心接口,普通接口按照一级降级处理,普通接口以及一般接口按照二级降级处理,普通接口、一般接口以及重要接口按照三级降级处理。普通接口可以包括广告查询接口等,一般接口可以包括订单列表接口等,重要接口可以包括领券接口等,核心接口可以包括登录接口以及支付接口等。

在第一种示例中,若在第一地区的客户终端接收到普通用户A的业务触发请求,因不满足拦截条件中的拦截地区,客户终端可以响应于普通用户A的业务触发请求,向服务器发送业务处理请求。

在第二种示例中,若在第三地区的客户终端接收到VIP用户B的业务触发请求,虽然满足拦截条件中的拦截地区,但不满足拦截条件中的用户级别,因此,客户终端可以响应于VIP用户B的业务触发请求,向服务器发送业务处理请求。

在第三种示例中,若在第三地区的客户终端接收到普通用户C的领券业务触发请求,客户终端响应于领券业务触发请求,向服务器发送领券业务处理请求。服务器向客户终端返回500响应码,因满足拦截条件中的拦截地区,满足拦截条件中的用户级别,满足拦截条件中的服务器向客户终端返回的是非200响应码,以及满足拦截条件中的接口为重要接口。因此,客户终端将普通用户C的领券业务处理请求进行拦截,同时,客户终端也对普通用户C的订单查询业务处理请求以及广告查询业务处理请求进行拦截。

需要说明的是,若业务处理请求中所调用的接口为核心接口时,对该业务处理请求不进行降级处理,以保证核心接口对应的业务的正常运行。

结合上述内容可以理解,本申请是从客户终端的角度来自适应地进行业务降级,以降级服务器端的压力。其中,根据服务器执行业务处理请求后返回的反馈结果的不同,客户终端降低降级服务器端的压力的方式也不同。

在一个实施例中,当反馈结果包括接口调用超时、接口被流控、接口响应时间超过阈值时,客户终端降低降级服务器端的压力的方式为流量削峰方式。其中,通过流量削峰方式可以降低服务器端的应用系统的QPS,以使服务器端的应用系统的QPS的曲线从“高瘦”优化成“矮胖”。具体地,如图5所示,提供了一种服务器端的应用系统的QPS优化前和优化后的示意图,可以看出,服务器端的应用系统的QPS的曲线从“高瘦”优化成“矮胖”。

在一个实施例中,当反馈结果包括服务器技术故障时,客户终端降低降级服务器端的压力的方式为服务熔断方式。其中,通过服务熔断方式可以降低客户终端向服务器发送的无效请求。

在图3所示的实施例的基础上,在其中一个实施例中,对在生效开始时间后的最小发送周期内的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求,包括:当在生效开始时间后的最小发送周期内再次接收到业务触发请求时,对在生效开始时间后的最小发送周期内的降级对象的全部业务处理请求进行拦截处理,获得目标业务请求。其中,目标业务请求为最小发送周期后的降级对象的业务处理请求,该目标业务请求为有效请求。

例如,生效开始时间用T

其中,假设客户终端向服务器调用的接口处于持续流控状态,客户终端会接收到来自服务器的流控响应码,在t秒内只有一次有效请求,即1秒内有1/t次有效请求,若发起业务处理请求的客户终端的数量为Q,则对服务器的应用系统实际产生压力的QPS

需要说明的是,客户终端降低服务器端的压力的方式可以包括流量削峰方式和服务熔断方式,采用流量削峰方式时客户终端从服务器获取的反馈结果包括接口调用超时、接口被流控、接口响应时间超过阈值,采用服务熔断方式时客户终端从服务器获取的反馈结果包括服务器技术故障。由于服务器出现技术故障通常不能短时间恢复,因此,需要设置采用服务熔断方式时对应的最小发送周期大于采用流量削峰方式时对应的最小发送周期。

在图3所示的实施例的基础上,在其中一个实施例中,对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求,包括:当在生效开始时间后的最小发送周期内再次接收到业务触发请求时,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理,获得目标业务请求。其中,目标业务请求为在生效开始时间后的最小发送周期内的降级对象的业务处理请求中未被拦截的请求,该请求为有效请求。

可以理解,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理时,是从在生效开始时间后的最小发送周期内的降级对象的全部业务处理请求中,抽取预设比例的业务处理请求进行拦截,所拦截的预设比例的业务处理请求为无效请求。其中,可以使用随机算法来决策在生效开始时间后的最小发送周期内的降级对象的业务处理请求是否为无效请求。

具体地,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理,获得目标业务请求,包括:控制生成在生效开始时间后的降级对象的业务处理请求对应的随机数;根据随机数,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理,获取目标业务请求。

其中,可以通过随机算法对在生效开始时间后的降级对象的业务处理请求生成对应的0~1的随机数,预设比例为0~100%之间的数值。若需要拦截降级对象的预设比例的业务处理请求,可以在生成的随机数小于或等于预设比例的情况下,将随机数小于或等于预设比例时的随机数对应的业务处理请求进行拦截。可以理解,对于每个用户,同一时间在使用客户终端的同一接口时,可按相同的预设比例随机抽取请求进行拦截,保证用户之间的公平性。

例如,最小发送周期用t表示,从t秒内产生的业务处理请求中抽取预设比例为p的请求作为无效请求丢弃。假设每个客户终端在t秒内产生n个请求,即无效请求数为n×p,发送的有效请求有1+n×(1-p),则Q个客户终端对服务器端的应用系统实际产生压力的QPS

在一个实施例中,对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求之后,如图7所示,还包括以下步骤:

S702,当触发降级时间后的最小降级周期内的目标业务请求的反馈结果满足业务降级条件时,增加预设比例,增加降级级别。

在本实施例中,触发降级时间为确定降级对象的时间,当触发降级时间后的最小降级周期内的目标业务请求的反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件。

在一个实施例中,预设比例与降级级别具有正相关关系,通过增加预设比例可以增加降级级别,增加降级级别后的降级程度大于当前的降级程度。例如,若降级级别为一级,预设比例为30%,通过将预设比例增加为50%,可以将降级级别增加为二级。若降级级别为二级,预设比例为50%,通过将预设比例增加为100%,可以将降级级别增加为三级。

S704,确定增加降级级别后的降级对象。

在本实施例中,通过增加预设比例来增加降级级别后,由于增加降级级别后的降级程度大于当前的降级程度,因此,客户终端增加降级级别后的降级对象的数量多于未增加降级级别后的降级对象的数量。例如,以降级对象为接口为例,降级级别为一级时,降级级别对应的接口可以包括普通接口,客户终端所拦截的为普通接口对应的业务处理请求。降级级别为二级时,降级级别对应的接口可以包括一般接口以及普通接口,客户终端所拦截的为一般接口以及普通接口对应的业务处理请求。可以理解,客户终端增加降级级别后,所拦截的业务处理请求的数量多于未增加降级级别后的业务处理请求的数量。

S706,更新触发降级时间。

其中,更新后的触发降级时间为增加降级级别后确定降级对象的时间,通过更新触发降级时间,可以在下次继续判断是否增加预设比例,增加降级级别。需要说明的是,当增加后的降级级别达到所设定的最大降级级别时,若判断继续需要增加降级级别时,也不再增加降级级别,而是以最大降级级别来对业务处理请求进行拦截。在一个实施例中,最大降级级别对应的预设比例可以为100%,即对在生效开始时间后的最小发送周期内的降级对象的全部业务处理请求进行拦截处理,客户终端向服务器发送的是在最小发送周期后的业务处理请求。

综上,在图7所示的实施例中,通过在触发降级时间后的最小降级周期内的目标业务请求的反馈结果满足业务降级条件时,增加预设比例,增加降级级别,并确定增加降级级别后的降级对象,更新触发降级时间。这样,客户终端可以根据服务器端的异常程度自适应地选择合适的降级级别以及降级级别对应的降级对象。客户终端通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理时,使得客户终端可以降低向服务器发送的业务请求的数量,从而可以降低服务器端的压力,释放服务器端的资源,这样,服务器在后续处理来自客户终端的业务处理请求时,可以保证客户终端侧的业务运行的稳定性。

在一个实施例中,对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获得目标业务请求之后,如图8所示,还包括以下步骤:

S802,当触发降级时间后的最小降级周期内的目标业务请求的反馈结果不满足业务降级条件时,降低预设比例,降低降级级别。

在本实施例中,触发降级时间为确定降级对象的时间,当触发降级时间后的最小降级周期内的目标业务请求的反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障之外,确定不满足业务降级条件。

在一个实施例中,预设比例与降级级别具有正相关关系,通过降低预设比例可以降低降级级别,降低降级级别后的降级程度小于当前的降级程度。例如,若降级级别为三级,预设比例为100%,通过将预设比例降低为50%,可以将降级级别降低为二级。若降级级别为二级,预设比例为50%,通过将预设比例降低为30%,可以将降级级别降低为一级。

S804,确定降低降级级别后的降级对象。

在本实施例中,通过降级预设比例来降低降级级别后,由于降低降级级别后的降级程度小于当前的降级程度,因此,客户终端降低降级级别后的降级对象的数量少于未境地降级级别后的降级对象的数量。例如,以降级对象为接口为例,降级级别为二级时,降级级别对应的接口可以包括一般接口以及普通接口,客户终端所拦截的为一般接口以及普通接口对应的业务处理请求。降级级别为一级时,降级级别对应的接口可以包括普通接口,客户终端所拦截的为普通接口对应的业务处理请求。可以理解,降低降级级别后,客户终端对所拦截的接口数量减少,即对所拦截的接口对应的业务处理请求数量减少。

S806,更新触发降级时间。

其中,更新后的触发降级时间为降低降级级别后确定降级对象的时间,通过更新触发降级时间,可以在下次继续判断是否降低预设比例,降低降级级别。需要说明的是,当降低后的降级级别达到所设定的最小降级级别时,若判断需要继续对降级级别进行降低,也不再对降级级别进行降低,而是以最小降级级别来对业务处理请求进行拦截。在一个实施例中,最小降级级别对应的预设比例可以为0%,即对在生效开始时间后的最小发送周期内的降级对象的全部业务处理请求不进行拦截处理,也即关闭客户终端的业务降级处理。

综上,在图8所示的实施例中,通过在触发降级时间后的最小降级周期内的目标业务请求的反馈结果不满足业务降级条件时,降低预设比例,降低降级级别,并确定降低降级级别后的降级对象,更新触发降级时间。客户终端可以根据服务器端的异常程度自适应地选择合适的降级级别以及降级级别对应的降级对象。客户终端通过对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理时,使得客户终端可以降低向服务器发送的业务请求的数量,从而可以降低服务器端的压力,释放服务器端的资源,这样,服务器在后续处理来自客户终端的业务处理请求时,可以保证客户终端侧的业务运行的稳定性。

结合上述内容,如图9所示,提供了一种业务降级处理的流程示意图,具体过程如下所示:

S901,用户开启应用程序后,当用户通过对应用程序中的业务进行点击或触摸操作时,可以生成对应的业务触发请求。

S902,客户终端响应于业务触发请求生成对应的业务处理请求,并向服务器发送业务处理请求。

S903,客户终端通过获取服务器执行业务处理请求的反馈结果,以根据反馈结果确定是否满足业务降级条件。具体地,当反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,进而确定降级级别以及降级级别对应的降低对象,获取降级对象在网络请求层的拦截器的生效开始时间以及记录触发降级时间。

S904,当在生效开始时间后的最小发送周期内再次接收到业务触发请求时,控制生成在生效开始时间后的降级对象的业务处理请求对应的随机数x。将对应的随机数大于预设比例时的随机数x对应的业务处理请求不进行拦截,不进行拦截的业务处理请求为有效请求,有效请求即为目标处理请求。

S905,客户终端向服务器发送目标处理请求后,客户终端可以根据服务器对目标处理请求返回的反馈结果,来确定是否满足业务降级条件,进而增加或降低降级级别,具体地,如S3和S4描述的内容:

S9061,当客户终端根据目标处理请求的反馈结果确定满足业务降级条件,且客户终端确定满足业务降级条件时的当前时间满足级别升级条件时,即客户终端确定满足业务降级条件时的当前时间在触发降级时间后的最小降级周期内时,增加预设比例,增加降级级别,并确定增加降级级别后的降级对象以及更新触发降级时间;在更新触发降级时间后,客户终端随机延时1秒~2.5秒后,通过弹窗显示友好提示文案,并在经过一定时间后关闭弹窗。若在关闭弹窗后,客户终端重新接收到业务触发请求,可以重新返回S904执行相应的步骤。

其中,当客户终端根据目标处理请求的反馈结果确定满足业务降级条件时,若客户终端确定满足业务降级条件时的当前时间不满足级别升级条件,即客户终端确定满足业务降级条件时的当前时间在触发降级时间后的最小降级周期之外时,客户终端可以弹窗提示友好提示文案,并在经过一定时间后关闭弹窗。若在关闭弹窗后,客户终端重新接收到业务触发请求,可以重新返回S2执行相应的步骤。

S9062,当客户终端根据目标处理请求的反馈结果确定不满足业务降级条件,且客户终端确定不满足业务降级条件时的当前时间满足级别降级条件时,即客户终端确定不满足业务降级条件时的当前时间在触发降级时间后的最小降级周期内时,降低预设比例,降低降级级别,并确定降低降级级别后的降级对象以及更新触发降级时间。

其中,若降低后的降级级别等于最小降级级别,则客户终端清空更新后的触发降级时间以及生效开始时间,以使得客户终端后续进行业务降级处理时,之前所记录的时间不会对后续的业务降级产生影响。可以理解,在降低后的降级级别等于最小降级级别时,说明服务器端响应正常,因此,服务器端可以正常向客户终端返回业务处理结果,使得客户终端可以显示业务处理结果。

其中,当客户终端根据目标处理请求的反馈结果确定不满足业务降级条件时,若客户终端确定不满足业务降级条件时的当前时间不满足级别降级条件,即客户终端确定满足业务降级条件时的当前时间在触发降级时间后的最小降级周期之外时,说明服务器端响应正常,因此,服务器端可以正常向客户终端返回业务处理结果,使得客户终端可以业务处理结果。

结合图9所示的内容,需要说明的是,在增加降级级别或降低降级级别后,若下次客户终端再次响应于业务触发请求时,客户终端可以基于增加后的降级级别或降低后降级级别执行相应的业务拦截过程。

结合上述内容,需要说明的是,在进行业务降级处理时,需要保证客户终端调用服务器端的接口之间的公平性以及不同客户终端的业务降级处理的公平性。接口之间的公平性是指响应顺畅的接口不应受到响应异常的接口的影响,被过渡降级。为保证客户终端调用服务器端的接口之间的公平性,客户终端在调用服务器的不同接口时,客户终端可以对不同接口按照相应的生效开始时间以及触发降级时间执行相应的业务降级处理,从而避免响应顺畅的接口受到响应异常的接口的影响。为保证不同客户终端的业务降级处理的公平性,以上描述的通过随机算法来生成随机数的方式,可以使得对于每个用户,同一时间在使用移动客户端的同一接口时,可按相同的预设比例随机抽取业务处理请求丢弃,保证不同客户终端之间的公平性。

结合上述内容,需要说明的是,本申请提出的业务降级处理方法可以集成为软件开发工具包(Software Development Kit,SDK),在安装在客户终端后,客户终端可自动自适应开启、关闭服务降级。其中,还可以设置用于控制客户终端的业务降级处理的整体开关,当整体开关在开启状态时,客户终端可以自适应地进行业务降级处理。

而且,本申请提出的方法填补了从客户终端来进行业务降级技术的空白,解决客户终端在服务端出现异常、拥堵时只能被动响应、体验失控的问题。通过客户终端根据与服务端之间的交互过程动态感知服务端状态,以使得客户终端可以自适应选择合适的降级级别,以主动舍去边缘请求,降低服务端压力,确保核心业务正常高效运行。同时,由于客户终端通常为单用户在线模式,即使按接口的重要性设置降级级别,相较于服务器端的业务降级处理过程,不存在因此带来的二次性能消耗负担,也不容易产生公平性问题。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的业务降级处理方法的业务降级处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个业务降级处理装置实施例中的具体限定可以参见上文中对于业务降级处理方法的限定,在此不再赘述。

在一个实施例中,如图10所示,提供了一种业务降级处理装置,包括:第一确定模块1002、第二确定模块1004、获取模块1006和通信模块1008,其中:

第一确定模块1002,用于当根据服务器返回的对已执行的业务处理请求的反馈结果,确定满足业务降级条件时,确定降级对象。

第二确定模块1004,用于确定降级对象在网络请求层的拦截器,以及拦截器的生效开始时间。

获取模块1006,用于对在生效开始时间后的降级对象的至少部分业务处理请求进行拦截处理,获取目标业务请求。

通信模块1008,用于向服务器发送目标业务请求。

在一个实施例中,第一确定模块,还用于:

响应于业务触发请求,并向服务器发送业务处理请求;

获取服务器执行业务处理请求的反馈结果;

当反馈结果为接口调用超时、接口被流控、接口响应时间超过阈值或服务器技术故障时,确定满足业务降级条件,以及降级级别;

获取降级级别对应的降级对象。

在一个实施例中,获取模块,还用于:

当在生效开始时间后的最小发送周期内再次接收到业务触发请求时,对在生效开始时间后的最小发送周期内的降级对象的全部业务处理请求进行拦截处理,获得目标业务请求;其中,目标业务请求为最小发送周期后的降级对象的业务处理请求。

在一个实施例中,获取模块,还用于:

当在生效开始时间后的最小发送周期内再次接收到业务触发请求时,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理,获得目标业务请求。

在一个实施例中,装置还包括调整模块,调整模块,用于:

当触发降级时间后的最小降级周期内的目标业务请求的反馈结果满足业务降级条件时,增加预设比例,增加降级级别;触发降级时间为确定降级对象的时间;增加降级级别后的降级程度大于当前的降级程度;

确定增加降级级别后的降级对象;

更新触发降级时间。

在一个实施例中,装置还包括调整模块,调整模块,还用于:

当触发降级时间后的最小降级周期内的目标业务请求的反馈结果不满足业务降级条件时,降低预设比例,降低降级级别;降低降级级别后的降级程度小于当前的降级程度;

确定降低降级级别后的降级对象;

更新触发降级时间。

在一个实施例中,获取模块,还用于:

控制生成在生效开始时间后的最小发送周期内的降级对象的业务处理请求对应的随机数;

根据随机数,对在生效开始时间后的最小发送周期内的降级对象的预设比例的业务处理请求进行拦截处理,获取目标业务请求。

上述业务降级处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种业务降级处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,在本申请中,显示屏可以用于显示领券页面、订单查询页面以及登录页面等。该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种客户终端,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 终端屏幕保险的数据处理方法、装置、客户端及服务器
  • 基于终端的音频处理方法、装置、终端和可读存储介质
  • 数据处理方法、装置、系统、服务端装置和客户端装置
  • 电能计量装置的信息处理方法、装置、终端及存储介质
  • 金融自助终端业务流程开发方法、装置及终端设备
  • 业务使用请求处理方法、相关装置及计算机程序产品
  • 业务数据处理方法、装置、设备、介质和计算机程序产品
技术分类

06120115933411