降级服务控制方法及系统与流程

未命名 10-19 阅读:60 评论:0


1.本技术实施例涉及降级服务控制领域。更具体地讲,涉及一种降级服务控制方法、设备及系统。


背景技术:

2.随着互联网的快速发展,持续为用户提供正常的业务服务是对软件系统的基本要求。相对的,发生流量突增、不可预知故障、资源不足等等复杂状况是难以避免的,极容易导致业务服务中断。为了保障业务高可用,业界主流技术是对云端系统采用“降级”的安全措施。
3.降级措施的技术要点体现为:准确及时的感知系统异常并自动触发降级,异常场景覆盖全面,提供的降级数据对用户体验感知最低。由于识别降级的条件繁杂,难以全面监测,致使很多系统仍旧依靠人工监控来切换降级,未能发挥出技术优势。为了达成预期目标,目前业界对自动化降级还是有广泛应用的,常见方案如下:1、监控业务服务所在资源空间的服务资源(中央处理器(central processing unit,cpu)、内存或输入/输出(i/o)带宽)的消耗状况,若服务资源的消耗超出阈值,则自动切换为降级数据;2、监控业务服务的返回数据状况,若返回数据中异常结果的比重超出阈值,则自动切换为降级数据。
4.然而,随着日常运用不断深入,上述自动化降级方案存在以下缺点:在服务资源的消耗超出阈值或返回数据中异常结果的比重超出阈值后转为降级数据,使得未超出阈值(即未达到整体降级条件)前出现的异常请求,会下发异常结果影响用户使用。


技术实现要素:

5.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术实施例提供了一种降级服务控制方法、设备及系统,可以通过单次请求降级策略为用户返回正常的业务数据,可以提高用户体验。
6.第一方面,本技术实施例提供了一种降级服务控制方法,包括:接收终端设备发送的目标服务请求;基于负载均衡原理,调用目标业务api执行该目标服务请求,该目标服务请求对应承载该目标业务api的目标业务服务;在该目标业务api针对该目标服务请求返回的业务结果指示异常的情况下,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据;将该目标业务数据发送至该终端设备。
7.第二方面,本技术实施例提供了一种降级服务控制设备,包括:存储器,被配置为存储计算机程序;处理器,被配置为用于在调用计算机程序时,使得降级服务控制设备实现如第一方面所示的降级服务控制方法。
8.第三方面,本技术实施例提供了一种降级服务控制系统,包括:降级服务、流处理平台、采集服务、数据存储服务、全局降级调节服务、降级策略后台服务;降级服务,被配置为:接收终端设备通过网关发送的目标服务请求,目标服务请求对应承载目标业务api的目标业务服务;降级服务包括多个pod,降级服务通过多个pod管理包括目标业务服务在内的
至少一个业务服务的业务api;根据降级服务对应的全局pod异常比重,确定在当前全局时间窗口执行的目标全局降级策略,以及确定目标服务请求所属的目标数据类型;全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,多个pod中每个pod调用业务api出现异常的比重的平均值,不同的全局降级策略针对的降级处理的服务请求的数据类型不同;在确定目标全局降级策略针对目标数据类型的服务请求不进行降级处理的情况下,基于负载均衡原理,调用目标业务api执行目标服务请求;在目标业务api针对目标服务请求返回的业务结果指示异常的情况下,针对目标服务请求执行单次请求降级策略,以获得与目标服务请求对应的目标业务数据;在目标业务api针对目标服务请求返回的业务结果指示正常的情况下,将业务结果确定为目标业务数据;在确定目标全局降级策略针对目标数据类型的服务请求进行降级处理的情况下,将与目标服务请求对应的预存降级数据确定为目标业务数据;通过网关将目标业务数据和目标数据类型返回给目标终端;流处理平台,被配置为:通过网关接收降级服务返回的目标业务数据和目标数据类型;采集服务,被配置为:从流处理平台消费消息,并将目标业务数据和目标数据类型保存到数据存储服务;降级策略后台服务,被配置为:根据数据类型配置全局降级策略和/或单次请求降级策略,或,基于运维人员的操作配置全局降级策略和/或单次请求降级策略;通过流处理平台将配置的全局降级策略和/或单次请求降级策略推送给降级服务;全局降级调节服务,被配置为:周期性获取降级服务对应的实时全局pod异常比重;根据实时全局pod异常比重,更新全局异常比重范围与预设降级策略的对应关系,以更新全局降级策略的降级等级,将更新后的全局降级策略的降级等级发送给降级策略后台服务;降级策略后台服务,还被配置为:更新后的全局降级策略的降级等级,并通过流处理平台将更新后的全局降级策略的降级等级推送给降级服务。
9.第四方面,本技术实施例提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第一方面所示的降级服务控制方法。
10.本技术实施例提供的技术方案与现有技术相比具有如下优点:本技术实施例中,接收终端设备发送的目标服务请求;基于负载均衡原理,调用目标业务api执行该目标服务请求,该目标服务请求对应承载该目标业务api的目标业务服务;在该目标业务api针对该目标服务请求返回的业务结果指示异常的情况下,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据;将该目标业务数据发送至该终端设备。如此,当目标业务api执行目标服务请求返回的业务结果指示异常时,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据,将指示正常的业务服务数据返回给用户,从而可以在达到整体降级条件之前出现的异常请求,可以通过单次请求降级策略为用户返回正常的业务数据,可以提高用户体验。
附图说明
11.为了更清楚地说明本技术实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
12.图1示出了根据一些实施例中的降级服务控制方法的流程示意图之一;
13.图2示出了根据一些实施例中的降级服务控制方法的流程示意图之二;
14.图3示出了根据一些实施例中的降级服务控制方法的流程示意图之三;
15.图4示出了根据一些实施例中的单次请求降级策略确定示意图;
16.图5示出了根据一些实施例中的全局降级策略确定示意图;
17.图6示出了根据一些实施例中的降级服务控制方法的流程示意图之四;
18.图7示出了根据一些实施例中的降级服务控制方法的流程示意图之五;
19.图8示出了根据一些实施例中的降级服务控制方法的流程示意图之六;
20.图9示出了根据一些实施例中的降级服务控制方法的流程示意图之七;
21.图10示出了根据一些实施例中的全局降级策略调节示意图;
22.图11示出了根据一些实施例中的降级服务控制设备框架结构示意图;
23.图12示出了根据一些实施例中的降级服务控制系统框架结构示意图;
24.图13示出了根据一些实施例中的降级服务控制系统实例结构示意图;
25.图14示出了根据一些实施例的全局降级策略配置示意图;
26.图15示出了根据一些实施例的单次请求降级策略配置示意图;
27.图16示出了根据一些实施例中的降级服务-查询接口的逻辑处理流程图;
28.图17示出了根据一些实施例中的降级服务匹配全局降级策略和单次请求降级策略的逻辑流程图;
29.图18示出了根据一些实施例中的降级服务-回源接口的逻辑处理流程图。
具体实施方式
30.为使本技术的目的和实施方式更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
31.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
32.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
33.术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
34.接下来,对本技术中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
35.业务结果指示异常,根据业务应用程序接口(application program interface,api)api执行业务请求返回的业务结果携带的状态码确定业务结果是否正常。通常情况下,状态码为“200”指示业务结果正常,状态码为非“200”指示服务请求异常。
36.业务服务,包括但不限于以下至少一种:用于提供首页服务的首页业务服务、用于提供二级页(详情页)服务的二级页业务服务、用于提供筛选页(分类页)服务的筛选页业务服务、用于提供专题页(例如活动对应的专题页)服务的专题页业务服务。每种业务服务会
部署多个运行实例(以下简称pod),每种业务服务承载多个业务api。
37.全周期异常自动降级,能够针对全周期中的任意异常请求实施自动降级,以为用户返回正常的业务结果(降级数据)。
38.随着互联网的快速发展,持续为用户提供正常的业务服务是对软件系统的基本要求。相对的,发生流量突增、不可预知故障、资源不足等等复杂状况是难以避免的,极容易导致业务服务中断。为了保障业务高可用,业界主流技术是对云端系统采用“限流”和“降级”的安全措施。
39.限流技术通常是实时统计单位窗口期的请求量,判断是否超出设定的最大并发阈值,超限请求会转为下发预置数据。虽然该措施的防护及时性较高,但固定的预置数据会影响用户正常使用。因此,云端系统更倾向使用“降级”来保证用户体验。
40.相比限流,降级更为复杂,技术要点体现为:准确及时的感知系统异常并自动触发降级,异常场景覆盖全面,提供的降级数据对用户体验感知最低。由于识别降级的条件繁杂,难以全面监测,致使很多系统仍旧依靠人工监控来切换降级,未能发挥出技术优势。为了达成预期目标,目前业界对自动化降级还是有广泛应用的,常见方案如下:
41.1、监控业务服务所在资源空间的服务资源(中央处理器(central processing unit,cpu)、内存或输入/输出(i/o)带宽)的消耗状况,若服务资源的消耗超出阈值,则自动切换为降级数据;
42.2、监控业务服务的返回数据状况,若返回数据中异常结果的比重超出阈值,则自动切换为降级数据。
43.然而,随着日常运用不断深入,上述自动化降级方案存在以下缺点:在服务资源的消耗超出阈值或返回数据中异常结果的比重超出阈值后转为降级数据,使得未超出阈值前出现的异常请求,会下发异常结果影响用户使用。
44.随着日常运用不断深入,上述方案的缺点也凸显出来,主要体现为:
45.1、在服务资源的消耗超出阈值或返回数据中异常结果的比重超出阈值后转为降级数据,使得未超出阈值前出现的异常请求,会下发异常结果影响用户使用,未实现全周期异常的自动降级。
46.2、云端服务采用集群部署,一个服务会部署多个pod,个别pod出现异常且异常率比较高可能导致整体异常超出阈值,进而触发整体降级。是否触发整体降级的判断指标过于敏感,容易频繁触发整体降级,且容易使得未出现异常的pod或异常率比较低的pod也触发降级,导致影响用户体验。
47.3、超出阈值上限后提供的降级数据,经常因为数据有损程度过高,导致用户抱怨投诉,缺少基于业务异常的严重程度决定最小有损降级数据的有效措施。
48.4、系统提供降级数据时,往往也需要调用业务服务,若仍然调用已存在异常的业务服务获取降级数据,导致并没有降低已有异常的业务服务的压力,导致异常状况进一步恶化;若分流到单独部署的业务服务(为提供降级数据额外部署的业务服务,只有在提供降级数据时使用,在不需要提供降级数据(也就是没有触发整体降级时)空闲不用)获取降级数据,也会因额外部署大量的业务服务造成服务器资源的严重消耗。
49.综上,迫切需要一种“实时监测业务异常状态,精确控制降级影响”的自动化降级方案。本发明通过搭建自动降级服务装置,区分“业务请求单独降级”和“业务集群整体降
级”的渐进式、分层式、自适应自动降级方式,根据各类业务数据的降级有损程度,精确适配对应业务异常程度的最小有损数据,兼顾达成“保护业务系统”和“最小影响用户体验”的最终目标。
50.为了更加详细的说明本方案,以下将以示例性的方式结合图1至图10进行说明,可以理解的是,图1至图10中所涉及的步骤在实际实现时可以包括更多的步骤,或者更少的步骤,并且这些步骤之间的顺序也可以不同,以能够实现本技术实施例中提供的降级服务控制方法为准。
51.图1为根据本技术一个或多个实施例实现降级服务控制方法的步骤流程图,该降级服务控制方法的执行主体可以为服务设备,也可以为服务设备中能够实现该降级服务控制方法的功能模块或功能实体,此处不做限定。该降级服务控制方法可以包括下述的s101至s104。
52.s101、接收终端设备发送的目标服务请求。
53.本技术一些实施例中,目标服务请求可以为用户在终端设备上显示的首页上触发的服务请求,也可以为用户在终端设备上显示的二级页上触发的服务请求,也可以为用户在终端设备上显示的分类页上触发的服务请求,也可以为用户在终端设备上显示的专题页上触发的服务请求,还可以为用户在终端设备上显示的其他页上触发的服务请求,具体可以根据实际情况确定,此处不做限定。
54.s102、基于负载均衡原理,调用目标业务api执行该目标服务请求。
55.本技术一些实施例中,该目标服务请求对应承载该目标业务api的目标业务服务。目标服务请求为针对目标业务服务的服务请求,目标业务服务承载该目标业务api在内的多个业务api。目标服务请求可以通过目标业务服务承载的任意一个业务api执行,以返回目标服务请求对应的业务结果。目标业务api为基于负载均衡原理为目标服务请求匹配的执行该目标服务请求的业务api。
56.s103、在该目标业务api针对该目标服务请求返回的业务结果指示异常的情况下,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据。
57.其中,若直接将指示异常的业务结果返回给终端设备,则用户得到了异常结果,严重影响用户体验,因此,本技术一些实施例中,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据。如此,将指示正常的业务服务数据返回给用户,可以提高用户体验。
58.s104、将该目标业务数据发送至该终端设备。
59.当目标业务api执行目标服务请求返回的业务结果指示异常时,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据,将指示正常的业务服务数据返回给用户,从而可以在达到整体降级条件之前出现的异常请求,可以通过单次请求降级策略为用户返回正常的业务数据,可以提高用户体验。
60.本技术一些实施例中,上述s101至s104提供的降级服务控制方法可以应用于现有的根据服务资源的消耗超出阈值或根据返回数据中异常结果的比重超出阈值判断进入整体降级的条件的自动化降级服务,以解决在未达到整体降级条件前出现的异常请求,会下发异常结果影响用户使用的问题;也可以应用于本技术实施例提供的自动化降级服务,以
解决在未达到整体降级条件前出现的异常请求,会下发异常结果影响用户使用的问题。
61.为实现自动化降级服务,本技术实施例构建了一种降级服务控制系统,用于对本技术实施例提供的降级服务进行控制、维护等。
62.本技术一些实施例中,降级服务控制系统包括降级服务,降级服务控制系统通过降级服务管理至少一个业务服务(包括目标业务服务)的业务api,降级服务部署了多个pod,降级服务基于负载均衡原理,通过每个pod调用各个业务服务对应的业务api执行从终端设备接收的服务请求;降级服务可以在通过pod调用各个业务服务对应的业务api执行从终端设备接收的服务请求之后,返回异常的业务结果的情况下,针对该服务请求执行对应的单次请求降级策略获取正常的业务结果。单次请求降级策略可以为直接将服务请求对应的预存降级数据作为正常的业务结果,也可以针对服务请求的数据类型,以及单pod异常比重确定不同的单次请求降级策略,以获取正常的业务结果。降级服务可以通过每个pod统计各个业务服务承载的业务api的异常情况,以得到每个pod对应的单pod异常比重;然后降级服务根据一个pod对应的单pod异常比重确定该一个pod上对应的异常请求(通过该一个pod调用业务api执行的服务请求,且返回的业务结果指示异常的服务请求)对应的单次请求降级策略。
63.本技术一些实施例中,结合图1,如图2所示,在上述s103之前,本技术实施例提供的降级服务控制方法还可以包括下述的s105和s106。
64.s105、确定该目标业务api对应的目标单pod异常比重。
65.其中,该目标单pod异常比重用于指示在当前单pod时间窗口之前的上一单pod时间窗口内,目标pod调用业务api出现异常的比重;该目标pod为该多个pod中调用该目标业务api执行该目标服务请求的pod。
66.其中,降级服务的每个pod,都会基于固定的单pod时间窗口,计算窗口期内调用业务api出现异常的比重,该比重在每一窗口到期进行更新,本技术实施例中的单pod时间窗口可以设定为30秒(可根据实际情况配置调整,单pod时间窗口的窗口期越短感知业务api异常越敏感)。
67.其中,单pod异常比重为:上一单pod时间窗口内pod调用业务api异常数量(即异常请求的数量)与上一单pod时间窗口内该pod收到的业务api请求数量(即分配到该pod上所有请求的数量)的比值。
68.s106、在该目标单pod异常比重位于目标单pod异常比重范围内的情况下,将该目标单pod异常比重范围对应的目标预定降级策略确定为该单次请求降级策略。
69.其中,不同的单pod异常比重范围对应不同的预定降级策略。
70.本技术一些实施例中,可以设置至少两个单pod异常比重范围(包括目标单pod异常比重范围),当目标单pod异常比重位于目标单pod异常比重范围内时,针对该目标服务请求执行目标单pod异常比重范围对应的目标预定降级策略确定为该单次请求降级策略。如此,当目标单pod异常比重位于不同的单pod异常比重范围时,针对该目标服务请求执行的单次请求降级策略不同。
71.本技术实施例中,运维人员可以配置不同的单pod异常比重范围对应的预定降级策略,即针对不同的单pod异常比重范围配置不同的单次请求降级策略。单pod异常比重越高需要配置的对应的单次请求降级策略的数据有损程度越高,还可以配置针对服务请求是
否进行重试策略,以达到感知单pod异常比重越高,单pod分担业务api流量压力越多的目的。
72.本技术实施例中,根据目标业务api对应的目标单pod异常比重所在的单pod异常比重范围,确定合适的单次请求降级策略,从而可以使得根据业务系统压力确定合适的单次请求降级策略。
73.本技术一些实施例中,不同的异常比重范围对应的预定降级策略可以从针对不同的数据类型的服务请求是否进行降级策略的角度设置,还可以结合在不同的异常比重范围对应的预定降级策略中是否先执行重试策略。
74.本技术一些实施例中,可以设置部分异常比重范围对应的预定降级策略先执行重试策略,再针对不同的数据类型的服务请求设置是否执行降级策略;部分异常比重范围对应的预定降级策略不执行重试策略,直接针对不同的数据类型的服务请求设置是否执行降级策略,具体可以根据实际情况设定,此处不做限定。
75.本技术一些实施例中,以设置四个异常比重范围(第一异常比重范围、第二异常比重范围、第三异常比重范围和第四异常比重范围),以及每个异常比重范围对应的预定降级策略,具体如下:
76.在该目标单pod异常比重范围为第一异常比重范围的情况下,该目标预定降级策略(以下记为第一预定降级策略)为先执行重试策略(以下记为重试策略1),在该重试策略执行成功的情况下,将该重试策略对应的返回数据作为该目标业务数据,在该重试策略执行失败的情况下,执行第一降级策略;第一降级策略为在该目标服务请求的数据类型为第一类型的情况下,将与该目标服务请求对应的预存降级数据确定为该目标业务数据,在该目标服务请求的数据类型为除第一类型之外的一种的情况下,再次执行该重试策略(以下记为重试策略2);该重试策略为基于负载均衡原理调用该目标pod对应的业务api执行该目标服务请求;和/或,
77.在该目标单pod异常比重范围为第二异常比重范围的情况下,该目标预定降级策略(以下记为第二预定降级策略)为先执行该重试策略(以下记为重试策略1),在该重试策略执行成功的情况下,将该重试策略对应的返回数据作为该目标业务数据,在该重试策略执行失败的情况下,执行第二降级策略;第二降级策略为在该目标服务请求的数据类型为第一类型和第二类型中的一种的情况下,将与该目标服务请求对应的预存降级数据确定为该目标业务数据,在该目标服务请求的数据类型为除第一类型和第二类型之外的一种的情况下,再次执行该重试策略(以下记为重试策略2);和/或,
78.在该目标单pod异常比重范围为第三异常比重范围的情况下,该目标预定降级策略(以下记为第三预定降级策略)为先执行该重试策略(以下记为重试策略1),在该重试策略执行成功的情况下,将该重试策略对应的返回数据作为该目标业务数据,在该重试策略执行失败的情况下,执行第三降级策略;第三降级策略为将与该目标服务请求对应的预存降级数据确定为该目标业务数据,该目标服务请求的数据类型为第一类型、第二类型和第三类型中的一种;和/或,
79.在该目标单pod异常比重范围为第四异常比重范围的情况下,该目标预定降级策略(以下记为第四预定降级策略)为第三降级策略;
80.其中,第一异常比重范围中的每个值均小于第二异常比重范围中的最小值,第二
异常比重范围中的每个值均小于第三异常比重范围中的最小值,第三异常比重范围中的每个值均小于第四异常比重范围中的最小值;第一类型对应的数据的重要程度小于第二类型对应的数据的重要程度,第二类型对应的数据的重要程度小于第三类型对应的数据的重要程度。
81.本技术一些实施例中,数据类型对应的数据的重要程度可以根据该种数据类型的数据对用户的影响程度确定,例如,一种数据类型的数据对用户的影响程度越高则该种数据类型的数据的重要程度越高;或者,获取一种数据类型的数据对业务系统的压力越大则该种数据类型的数据的重要性程度越高;或者,一种数据类型的数据从运维的角度越重要则该种数据类型的数据的重要性程度越高;还可以从其他角度或方面确定不同数据类型的数据的重要程度。
82.可以理解,上述第一预定降级策略为先针对任意数据类型的目标服务请求执行重试策略(即通过调用业务api的方式重试获取目标服务请求对应的目标业务数据),在重试策略执行不成功的情况下,针对数据类型为第一类型的目标服务请求执行降级策略,即将与目标服务请求对应的预存降级数据作为所述目标业务数据返回给终端设备;针对数据类型为除第一类型之外的类型的目标服务请求再次执行重试策略(即再次通过调用业务api的方式重试获取目标服务请求对应的目标业务数据)。
83.上述第二预定降级策略为先针对任意数据类型的目标服务请求执行重试策略(即通过调用业务api的方式重试获取目标服务请求对应的目标业务数据),在重试策略执行不成功的情况下,针对数据类型为第一类型和第二类型中的一种的目标服务请求执行降级策略,即将与目标服务请求对应的预存降级数据作为所述目标业务数据返回给终端设备;针对数据类型为除第一类型和第二类型之外的类型的目标服务请求再次执行重试策略(即再次通过调用业务api的方式重试获取目标服务请求对应的目标业务数据)。
84.上述第三预定降级策略为先针对任意数据类型的目标服务请求执行重试策略(即通过调用业务api的方式重试获取目标服务请求对应的目标业务数据),在重试策略执行不成功的情况下,针对数据类型为第一类型、第二类型和第三类型中的一种的目标服务请求执行降级策略,即将与目标服务请求对应的预存降级数据作为所述目标业务数据返回给终端设备(即在重试策略不成功的情况下,针对所有数据类型的目标服务请求执行降级策略)。
85.上述第四预定降级策略为针对数据类型为第一类型、第二类型和第三类型中的一种的目标服务请求执行降级策略,即将与目标服务请求对应的预存降级数据作为所述目标业务数据返回给终端设备(即直接针对所有数据类型的目标服务请求执行降级策略)。
86.上述第一预定降级策略至第预定四降级策略,是以数据类型为第一类型、第二类型和第三类型共三种数据类型为例进行说明的,实际中若数据类型包括更多种类型,可以设置更多种预定降级策略,具体可以根据实际情况确定,此处不做限定。
87.可以理解,第一预定降级策略的降级等级低于第二预定降级策略的降级等级,第二预定降级策略的降级等级低于第三预定降级策略的降级等级,第三预定降级策略的降级等级低于第四预定降级策略的降级等级。目标pod对应的目标单pod异常比重越高,针对目标服务请求匹配的预定降级策略的降级等级可能越高,预定降级策略的降级等级越高,针对的执行降级策略的数据类型可能越多。
88.示例性地,互联网业务基于运营编排、用户行为的特点,基本可将数据类型分为静态数据、个性推荐数据、用户画像数据和用户定制数据四类,具体划分如下表1所示:
89.表1
[0090][0091]
其中,按照不同数据类型执行降级策略对用户体验的有损程度(即按照对用户的影响程度),将预定降级策略划分4个降级等级,可灵活配置各数据类型在每一个降级等级是否可降级。如果能够降级,则将预存降级数据作为对应的目标服务请求对应的目标业务数据。本技术设定的不同降级等级对应的降级数据的数据类型详细如下表2所示:
[0092]
表2
[0093][0094]
示例性地,上述第一类型可以为个性推荐数据,第一预定降级策略可以为重试策略加轻度有损策略(1级降级策略);上述第二类型可以为用户画像数据,第二预定降级策略可以为重试策略加中度有损策略(2级降级策略);上述第三类型可以为用户定制数据,第三预定降级策略可以为重试策略加重度有损策略(3级降级策略);上述第四预定降级策略可以为重度有损策略(3级降级策略)。其中,仅对静态数据进行降级处理属于完全无损,因此对于数据类型为静态数据的目标服务请求,默认执行全局降级策略(即,当确定目标服务请求的数据类型为静态数据的情况下,直接执行降级策略(将预存降级数据作为目标业务数据),无需通过调用业务api执行该目标服务请求)。
[0095]
本技术一些实施例中,根据业务数据类型划分降级等级,实现基于业务服务的异常状况,自动适配最小有损的降级数据,提供最小影响用户体验的数据。
[0096]
本技术一些实施例中,可以针对每个异常比重范围对应的预定降级策略不执行重试策略,直接设置针对不同的数据类型的服务请求是否进行降级策略的角度设置,具体可以根据实际情况设定,此处不做限定。
[0097]
示例性地,针对上述表1和表2的描述,也可以设置四个异常比重范围,然后设置不同异常比重范围对应的预定降级策略。具体为:在目标异常比重范围为异常比重范围1时,目标预定降级策略为针对数据类型为静态数据的目标服务请求执行降级策略(将预存降级数据确定为目标业务数据),针对数据类型为除静态数据之外的(个性推荐数据、用户画像数据或用户定制数据的)目标服务请求不执行降级策略(即通过调用业务api执行目标服务请求),执行重试策略(以下记为重试策略2);在目标异常比重范围为异常比重范围2时,目标预定降级策略为针对数据类型为静态数据或个性推荐数据的目标服务请求执行降级策略(将预存降级数据确定为目标业务数据),针对数据类型为除静态数据和个性推荐数据之外的(用户画像数据或用户定制数据的)目标服务请求不执行降级策略(即通过调用业务api执行目标服务请求),执行重试策略(以下记为重试策略2);在目标异常比重范围为异常比重范围3时,目标预定降级策略为针对数据类型为静态数据、个性推荐数据或用户画像数据的目标服务请求执行降级策略(将预存降级数据确定为目标业务数据),针对数据类型为除静态数据、个性推荐数据和用户画像数据之外的(用户定制数据的)目标服务请求不执行降级策略(即通过调用业务api执行目标服务请求),执行重试策略(以下记为重试策略2);在目标异常比重范围为异常比重范围4时,目标预定降级策略为针对数据类型为静态数据、个性推荐数据、用户画像数据或用户定制数据的目标服务请求执行降级策略(将预存降级数据确定为目标业务数据)。
[0098]
需要说明的是,此时针对静态数据单独设置单次请求降级策略,因此无需执行上述的全局降级策略。
[0099]
本技术实施例中,针对静态数据是单独设置单次请求降级策略,还是默认执行全局降级策略,具体可以根据实际情况确定,此处不做限定。
[0100]
本技术一些实施例中,针对上述重试策略1为仅执行一次基于负载均衡原理调用该目标pod对应的业务api执行该目标服务请求。上述重试策略2为最多执行n次基于负载均衡原理调用该目标pod对应的业务api执行该目标服务请求,在任一次执行基于负载均衡原理调用该目标pod对应的业务api执行该目标服务请求之后,返回正常的业务结果的情况下,将正常的业务结果作为目标业务数据返回终端设备;在执行n次基于负载均衡原理调用该目标pod对应的业务api执行该目标服务请求之后,每次均返回异常的业务结果的情况下,将业务结果置空作为目标业务数据返回给终端设备,即向终端设备返回空数据,或者,将与目标服务请求对应的预存降级数据作为目标业务数据返回给终端设备,具体可以根据实际情况确定,此处不做限定。
[0101]
本技术一些实施例中,降级服务可以结合实际业务系统情况自动适配降级方式(全局降级策略或单次请求降级策略)和降级范围(降级等级),保障业务系统可能发生的所有异常。降级服务实时计算业务服务异常程度,中度或轻度异常状况采用单次请求自动降级,重度异常状况采用全局自动降级,解决相关技术中自动降级覆盖业务异常不足、过度敏
感误触发全局降级的问题。
[0102]
本技术一些实施例中,结合图2,如图3所示,在上述s102之前,本技术实施例提供的降级服务控制方法还可以包括下述的s107至s109,上述s102具体可以通过下述s102a实现。
[0103]
s107、确定该降级服务对应的全局pod异常比重。
[0104]
其中,该全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,该多个pod中每个pod调用业务api出现异常的比重的平均值。
[0105]
其中,可以获取降级服务所有pod的ip地址,基于固定的全局时间窗口访问降级服务的所有pod获取对应的pod的异常比重,按照“求平均值”的计算规则,得出全局pod异常比重。本技术实施例中,固定的全局时间窗口可以设定为3分钟(可根据实际情况配置调整,全局时间窗口的窗口期(窗口时长)越短感知全局异常变化越敏感)。
[0106]
全局pod异常比重的为:上一全局时间窗口内降级服务所有pod的异常比重(对应pod调用业务api异常数量与收到的业务api请求数量的比值)之和,与降级服务pod数量的比值。
[0107]
需要说明的是:若降级服务的某个pod没有计算出异常比重,则不纳入全局pod异常比重的计算。另外,设定参与全局pod异常比重计算的最小pod数量,如果低于该数量则本窗口期计算失效,延续使用上一窗口期的全局pod异常比重。
[0108]
s108、确定该全局pod异常比重是否位于预设全局异常比重范围内。
[0109]
在该全局pod异常比重位于预设全局异常比重范围内的情况下,执行下述s109,在该全局pod异常比重没有位于预设全局异常比重范围内的情况下,执行下述s102a。
[0110]
s102a、在该全局pod异常比重未位于该预设全局异常比重范围内的情况下,基于该负载均衡原理,调用该目标业务api执行该目标服务请求。
[0111]
s109、在该全局pod异常比重位于该预设全局异常比重范围内的情况下,针对该目标服务请求执行预设全局降级策略,以得到与该目标服务请求对应的预存降级数据。
[0112]
本技术一些实施例中,可以设置一个预设全局异常比重阈值,全局pod异常比重大于或等于预设全局异常比重阈值,则确定该全局pod异常比重位于预设全局异常比重范围内;全局pod异常比重小于预设全局异常比重阈值,则确定该全局pod异常比重没有位于预设全局异常比重范围内。
[0113]
降级服务作为业务api异常状态的测量装置,具备独立性和通用性的优势。降级服务实时计算“单pod的业务api异常比重(即单pod异常比重)”和“全体pod的业务api异常比重(即全局pod异常比重)”,实现了及时感知业务集群(降级服务管理的至少一个业务服务)异常程度,自动适配全局降级策略或单次请求降级策略,向终端设备返回最小有损用户体验的预存降级数据。
[0114]
降级服务作为观察者角色,用于对多个业务服务返回的请求结果数据(服务请求对应的业务结果)的情况的统计,以获得单pod异常比重和全局pod异常比重,并根据单pod异常比重或全局pod异常比重,确定服务请求对应的降级策略。
[0115]
示例性地,设置预设全局异常比重阈值为50%,如图4和图5所示,降级服务部署了5个pod,分别为pod a、pod b、pod c、pod d、pod e;目标服务请求对应的目标业务服务部署了10个pod,分别为pod 1、pod 2、pod 3、pod 4、pod 5、pod 6、pod 7、pod 8、pod 9、pod 10。
[0116]
图4中为上一单pod时间窗口内降级服务通过网关从终端设备接收的基于目标业务服务的500个服务请求,降级服务调用目标业务服务中的业务api执行该500个请求,统计得到的降级服务中的pod a-pod e中每个pod对应的单pod异常比重。由图4可知,目标业务服务的10个pod中个别pod进程死掉或者调用业务api部分返回异常,降级服务的各个pod计算感知到低于20%的单pod异常比重(均低于50%),由于目标业务服务仍然能够提供基本正常的业务服务,此时不适合针对所有服务请求均执行降级处理,更适合将业务api的异常请求(业务api返回异常结果的服务请求)进行自动降级(即单次请求自动降级处理)。进而降级服务在当前单pod时间窗口内可以根据pod a-pod e中目标pod对应的目标单pod异常比重确定目标服务请求对应的单次请求降级策略。
[0117]
图5中为上一全局时间窗口内降级服务通过网关从终端设备接收的基于目标业务服务的500个服务请求,降级服务调用目标业务服务中的业务api执行该500个请求,统计得到的降级服务中的pod a-pod e中每个pod对应的单pod异常比重。目标业务服务部署的10个pod中多个pod出现进程死掉或者大部分业务api返回异常,降级服务的各个pod计算感知到高于60%的单pod异常比重,全局pod异常比重也高于60%(高于50%),此时不适合仅对异常请求(业务api返回异常结果的服务请求)执行单次请求自动降级处理,更适合将全部服务请求都进行降级处理,分流业务系统压力,保护业务系统。
[0118]
本技术一些实施例中,还可以设置多个全局异常比重范围,不同的全局异常比重范围对应不同的全局降级策略,一个全局异常比重范围中的最小值大于另一个全局异常比重范围中的任意值,则该一个全局异常比重范围对应的全局降级策略,比该另一个全局异常比重范围对应的全局降级策略,针对更多的数据类型的服务请求执行降级策略,具体可以根据实际情况确定,此处不做限定。
[0119]
本技术实施例中,根据全局pod异常比重(在当前全局时间窗口之前的上一全局时间窗口内,该多个pod中每个pod调用业务api出现异常的比重的平均值)是否位于预设全局异常比重范围内,确定是否针对目标服务请求执行预设全局降级策略;在不执行预设全局降级策略的情况下,基于在该目标单pod异常比重位于目标单pod异常比重范围内的情况下,基于该负载均衡原理,调用该目标业务api执行该目标服务请求;在返回的业务结果指示异常的情况下,根据目标单pod异常比重所在的目标单pod异常比重范围,将目标单pod异常比重范围对应的目标预定降级策略确定为该单次请求降级策略,针对目标服务请求执行单次请求降级策略。如此,降级服务实时计算业务服务异常程度,中度或轻度异常状况采用单次请求自动降级,重度异常状况采用全局自动降级,解决相关技术中自动降级覆盖业务异常不足、过度敏感误触发全局降级的问题。
[0120]
本技术一些实施例中,结合图2,如图6所示,在上述s102之前,本技术实施例提供的降级服务控制方法还可以包括下述的s110至s112,上述s102具体可以通过下述s102b实现。
[0121]
s110、确定在当前全局时间窗口执行的目标全局降级策略。
[0122]
s111、确定该目标服务请求所属的目标数据类型。
[0123]
其中,不同的全局降级策略针对的降级处理的服务请求的数据类型不同。
[0124]
s102b、在确定该目标全局降级策略针对该目标数据类型的服务请求不进行降级处理的情况下,基于该负载均衡原理,调用该目标业务api执行该目标服务请求。
[0125]
s112、在确定该目标全局降级策略针对该目标数据类型的服务请求进行降级处理的情况下,将与该目标服务请求对应的预存降级数据确定为该目标业务数据。
[0126]
本技术实施例中,根据业务系统的实际情况设置多种全局降级策略,不同的全局降级针对的降级处理的服务请求的数据类型不同。因此根据当前全局时间窗口执行的目标全局降级策略,以及该目标服务请求所属的目标数据类型,确定该目标全局降级策略针对该目标数据类型的目标服务请求是否进行降级处理;在该目标全局降级策略针对该目标数据类型的目标服务请求不进行降级处理的情况下,基于该负载均衡原理,调用该目标业务api执行该目标服务请求;在确定该目标全局降级策略针对该目标数据类型的目标服务请求进行降级处理的情况下,将与该目标服务请求对应的预存降级数据确定为该目标业务数据。如此根据服务请求的数据类型划分降级等级,自动适配最小有损的降级数据。实现基于业务服务的异常状况,提供最小影响用户体验的数据。
[0127]
本技术一些实施例中,结合图6,如图7所示,上述s110具体可以通过下述s110a和s110c实现。
[0128]
s110a、确定该降级服务对应的全局pod异常比重。
[0129]
其中,该全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,该多个pod中每个pod调用业务api出现异常的比重的平均值。
[0130]
s110b、在该全局pod异常比重位于至少一个全局异常比重范围中的目标全局异常比重范围内的情况下,确定目标全局异常比重范围对应的目标预设降级策略。
[0131]
s110c、将该目标预设降级策略确定为该目标全局降级策略。
[0132]
其中,不同的全局异常比重范围对应不同的预设降级策略。
[0133]
本技术一些实施例中,运维人员可以配置不同的全局pod异常比重范围对应不同的全局降级策略,全局pod异常比重越高,需要设定有损程度越高的全局降级策略,达到全局异常比重越高,降级服务整体分担业务api流量压力越多的目的。
[0134]
本技术实施例中,根据全局pod异常比重所位于的目标全局异常比重范围,将目标全局异常比重范围对应的目标预设降级策略确定为该目标全局降级策略,可以根据全局pod异常比重(当前业务系统压力)适配合适的全局降级策。实时计算业务系统的服务状况,精确适配降级方式、范围和最小有损数据,大幅提升了自动降级的及时性和精确性,使业务api可用性从99.94%提升到99.99%,有效保证正常业务运营。
[0135]
本技术实施例中,结合当前业务系统实际压力情况,适配全局降级策略或单次请求降级策略,根据单pod异常比重所在单pod异常比重范围适配合适的单次请求降级策略,可以使得对用户体验的有损程度降低,根据全局pod异常比重所在全局pod异常比重范围适配合适的全局降级策略,同样可以使得对用户体验的有损程度降低,也最大程度规避了用户影响。同时,本技术实施例提供的服务降级控制方法可以覆盖业务系统的全周期异常,相比相关技术超出异常阈值后整体降级的方案,有效保证用户正常使用体验,达成用户满意度目标。
[0136]
本技术实施例包括全局降级策略和单次请求降级策略,进而除了可以处理全局性的请求异常情况外,还能够处理全局性的请求异常情况之外的如偶发性的请求异常情况,从而可以实现能够覆盖业务系统的全周期异常。
[0137]
本技术一些实施例中,可以根据实际需求设置不同的全局异常比重范围对应不同
的预设降级策略,从而可以根据业务系统的实际情况(全局异常比重)匹配最合适的预设降级策略,进而达到在缓解业务系统压力的同时,为用户返回对用户体验影响最小的业务数据。
[0138]
本技术一些实施例中,在该目标全局异常比重范围为第一全局异常比重范围的情况下,该目标预设降级策略(以下记为第一预设降级策略)为针对第一数据类型的服务请求执行降级处理以获取对应的预存降级数据,针对除第一数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,
[0139]
在该目标全局异常比重范围为第二全局异常比重范围的情况下,该目标预设降级策略(以下记为第二预设降级策略)为针对第一数据类型和第二数据类型中的一种的服务请求执行降级处理以获取对应的预存降级数据,针对除第一数据类型和第二数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,
[0140]
在该目标全局异常比重范围为第三全局异常比重范围的情况下,该目标预设降级策略(以下记为第三预设降级策略)为针对第一数据类型、第二数据类型和第三数据类型中的一种的服务请求执行降级处理以获取对应的预存降级数据,针对除第一数据类型、第二数据类型和第三数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,
[0141]
在该目标全局异常比重范围为第四全局异常比重范围的情况下,该目标预设降级策略(以下记为第四预设降级策略)为针对任意数据类型的服务请求执行降级处理以获取对应的预存降级数据;其中,第一全局异常比重范围中的每个值均小于第二全局异常比重范围中的最小值,第二全局异常比重范围中的每个值均小于第三全局异常比重范围中的最小值,第三全局异常比重范围中的每个值均小于第四全局异常比重范围中的最小值;第一数据类型对应的数据的重要程度小于第二数据类型对应的数据的重要程度,第二数据类型对应的数据的重要程度小于第三数据类型对应的数据的重要程度,第三数据类型对应的数据的重要程度小于除第一数据类型、第二数据类型和第三数据类型之外的数据类型对应的数据的重要程度。
[0142]
本技术实施例中,不限定上述第一数据类型、第二数据类型、第三数据类型和第四数据类型和上述第一类型、第二类型和第三类型之间的关系,具体可以根据实际情况确定。
[0143]
示例性地,按照数据的重要程度为对用户的影响程度为例,将服务请求的数据类型分为静态数据、个性推荐数据、用户画像数据和用户定制数据四类,上述第一数据类型为静态数据,上述第二数据类型为个性推荐数据,上述第三数据类型为用户画像数据,上述第四数据类型为用户定制数据。上述第一预设降级策略记为在目标服务请求的数据类型为静态数据的情况下,将目标服务请求对应的预存降级数据作为目标业务数据返回给终端设备,在目标服务请求的数据类型为个性推荐数据、用户画像数据和用户定制数据中的一种的情况下,基于负载均衡原理调用业务api执行目标服务请求;上述第二预设降级策略记为在目标服务请求的数据类型为静态数据或个性推荐数据的情况下,将目标服务请求对应的预存降级数据作为目标业务数据返回给终端设备,在目标服务请求的数据类型为用户画像数据和用户定制数据的情况下,基于负载均衡原理调用业务api执行目标服务请求;上述第三预设降级策略记为在目标服务请求的数据类型为静态数据、个性推荐数据和用户画像数据中的一种的情况下,将目标服务请求对应的预存降级数据作为目标业务数据返回给终端
设备,在目标服务请求的数据类型为用户定制数据的情况下,基于负载均衡原理调用业务api执行目标服务请求;上述第三预设降级策略记为在目标服务请求的数据类型为静态数据、个性推荐数据、用户画像数据和用户定制数据中的一种的情况下,将目标服务请求对应的预存降级数据作为目标业务数据返回给终端设备。
[0144]
本技术一些实施例中,可以根据实际情况对服务请求的数据类型进行划分,然后可以根据实际业务系统情况需求,针对不同数据类型的服务请求,划分不同的预设降级策略,具体可以根据实际情况确定,此处不做限定。
[0145]
本技术一些实施例中,结合图7,如图8所示,上述s110c之前,上述s110还可以包括下述s110d。
[0146]
s110d、确定该目标预设降级策略的降级等级是否高于或等于该上一全局时间窗口执行的第一全局降级策略的降级等级。
[0147]
在确定该目标预设降级策略的降级等级高于或等于第一全局降级策略的降级等级的情况下,执行上述s110c。
[0148]
本技术实施例中,在根据全局pod异常比重确定当前全局时间窗口对应的目标预设全局降级策略之后,判断目标预设全局降级策略的降级等级是否高于或等于该上一全局时间窗口执行的第一全局降级策略的降级等级,在确定该目标预设降级策略的降级等级高于或等于第一全局降级策略的降级等级的情况下,确定当前全局时间窗口相对上一全局时间窗口需要提升全局降级策略的降级等级,因为业务系统压力还没有得到很好的缓解,此时通过提升全局降级策略的降级等级,可以达到更好地保护业务系统的效果,因此可以直接将目标预设全局降级策略确定为目标全局降级策略,通过执行目标全局降级策略,有效缓解业务系统的压力,更好地保护业务系统。
[0149]
本技术一些实施例中,由于对业务请求执行全局降级策略之后,分担到业务服务的服务请求的总数量降低,降低了业务服务的压力,进而导致调用业务服务对应的业务api发生异常的比重也降低,因此,计算得到的全局pod异常比重也降低,从而仅仅根据全局pod异常比重确定全局降级策略,可能会认为业务系统压力降低,需要降低全局降级策略的降级等级,然而此时导致全局pod异常比重降低的原因可能是由于通过全局降级策略分担了业务服务的压力,而并不是业务服务的压力真正降低了。如果此时马上降低全局降级策略的降级等级,而业务服务的压力并没有真正降低,则在下一个全局时间窗口,全局pod异常比重又升高,导致又需要提升全局降级策略的降级等级,如此,业务服务的压力并没有真正降低,升全局降级策略的降级等级忽上忽下,频繁调节,可能会引发业务系统的稳定性和安全性问题。
[0150]
本技术一些实施例中,结合图8,如图9所示,上述s110d之后,在确定该目标预设降级策略的降级等级低于第一全局降级策略的降级等级的情况下,上述s110还可以包括下述s110e至s110g。
[0151]
s110e、确定目标数量是否等于数量阈值。
[0152]
其中,该目标数量为在该当前全局时间窗口之前连续执行第一全局降级策略的时间窗口的数量。
[0153]
其中,数量阈值可以根据实际情况确定,此处不做限定。
[0154]
在该目标数量等于该数量阈值的情况下,执行下述s110f;在该目标数量小于该数
量阈值的情况下,执行下述s110g。
[0155]
s110f、将第二全局降级策略确定为该目标全局降级策略。
[0156]
其中,第二全局降级策略的降级等级比第一全局降级策略的降级等级低一个等级。
[0157]
s110g、将第一全局降级策略确定为该目标全局降级策略。
[0158]
其中,全局降级策略的降级等级每升高一个等级,进行降级处理的服务请求的数据类型增加至少一种,且增加的每种数据类型对应的数据的重要程度大于非增加的数据类型对应的数据的重要程度。
[0159]
本技术一些实施例中,在根据全局pod异常比重确定当前全局时间窗口对应的目标全局降级策略之后,判断目标预设全局降级策略的降级等级是否高于或等于该上一全局时间窗口执行的第一全局降级策略的降级等级,在确定该目标预设降级策略的降级等级低于第一全局降级策略的降级等级的情况下,确定在该当前全局时间窗口之前连续执行第一全局降级策略的时间窗口的数量(目标数量)是否等于数量阈值;在该目标数量等于该数量阈值的情况下,将第二全局降级策略确定为该目标全局降级策略(即在第一全局降级策略的基础上降低一个降级等级);在该目标数量小于该数量阈值的情况下,将第一全局降级策略确定为该目标全局降级策略(即保持上一全局时间窗口对应的降级策略)。如此,在数量阈值个全局时间窗口(业务系统的压力很大可能缓解了)之后,再降低降级策略的降级等级,且每次降低一个降级等级,即逐级降低,如此可以很好地保证业务系统的安全性,还可以避免影响业务系统的稳定性。
[0160]
本技术一些实施例中,数量阈值,以及每次降低的降级等级的级数可以根据实际情况确定,此处不做限定。
[0161]
本技术一些实施例中,结合图8,如图9所示,在上述s110f之前,上述s110还可以包括下述s110h。
[0162]
s110h、确定在该当前全局时间窗口之前的该目标数量个全局时间窗口中的每个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级是否均低于对应的前一个全局时间窗口执行的全局降级策略的降级等级。
[0163]
其中,在该当前全局时间窗口之前的该目标数量个全局时间窗口中的每个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级均低于对应的前一个全局时间窗口执行的全局降级策略的降级等级的情况下,执行上述s110f;在该当前全局时间窗口之前的该目标数量个全局时间窗口中的至少一个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级高于或等于对应的前一个全局时间窗口执行的全局降级策略的降级等级的情况下,执行上述s110g。
[0164]
本技术一些实施例中,在根据全局pod异常比重确定当前全局时间窗口对应的目标全局降级策略之后,判断目标预设全局降级策略的降级等级是否高于或等于该上一全局时间窗口执行的第一全局降级策略的降级等级,在确定该目标预设降级策略的降级等级低于第一全局降级策略的降级等级的情况下,确定在该当前全局时间窗口之前连续执行第一全局降级策略的时间窗口的数量(目标数量)是否等于数量阈值;在该目标数量等于该数量阈值的情况下,再判断在该当前全局时间窗口之前的该目标数量个全局时间窗口中的每个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级是否均低于对应
的前一个全局时间窗口执行的全局降级策略的降级等级,在该当前全局时间窗口之前的该目标数量个全局时间窗口中的每个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级均低于对应的前一个全局时间窗口执行的全局降级策略的降级等级的情况下,将第二全局降级策略确定为该目标全局降级策略(即在第一全局降级策略的基础上降低一个降级等级)。如此,在数量阈值个全局时间窗口(业务系统的压力很大可能缓解了)之后,且每个全局时间窗口均判断可以降低降级侧了的降级等级时,再降低降级策略的降级等级,且每次降低一个降级等级,即逐级降低,如此可以很好地保证业务系统的安全性,还可以避免影响业务系统的稳定性。
[0165]
示例性地,如图10所示,全局降级调节服务在每个全局时间窗口计算出全局pod异常比重后,为对应的全局时间窗口匹配全局降级策略,并确定匹配全局降级策略所属的降级等级(以下称为当前降级等级),将当前降级等级与对应的上一全局时间窗口执行的全局降级策略的降级等级(以下称为上一降级等级)对比后,进行全局降级策略的降级等级的调整处理。详细逻辑如下:
[0166]
1》如果当前降级等级高于上一降级等级,则直接确定当前全局时间窗口对应的全局降级策略的降级等级提升到当前降级等级(如图10中确定全局时间窗口-2至3对应的全局降级策略的过程),即,当需要提升降级等级时,可以直接提升到匹配的全局降级等级(包括调等级提升降级等级)。
[0167]
2》如果当前降级等级等于上一降级等级,则无需调整全局降级策略的降级等级,保持执行上一全局时间窗口对应的全局降级策略。
[0168]
3》如果当前降级等级低于上一降级等级,说明全局pod异常比重减轻,需要按照观察窗口数量进行业务转好的判断(需要连续判断数量阈值个全局时间窗口业务均好转),图10中以数量阈值为5为例,即观察窗口数量设置为5个,如果达到观察窗口数量仍旧是小于当前降级等级,则将当前降级等级降低一个等级(如图10中确定全局时间窗口-4至18对应的全局降级策略的过程)。特别注意的是,恢复过程是不可以跳等级恢复的,只能逐级恢复,保证恢复过程的安全性。
[0169]
本技术一些实施例中,在存在与该目标服务请求的url匹配的目标缓存数据的情况下,该预存降级数据为该目标缓存数据,不同的缓存数据匹配不同的url;在不存在与该目标服务请求的url匹配的缓存数据的情况下,该预存降级数据为该目标服务请求对应的保底数据。
[0170]
其中,保底数据可以为空数据,也可以为满足服务请求最低要求的业务数据,具体可以根据实际情况确定,此处不做限定。
[0171]
本技术实施例中,在调用业务api执行服务请求获得业务结果(业务数据结果)后,在业务结果指示正常的情况下,可以将服务请求的url和对应的业务结果保存下来,以便后续作为预存降级数据,用于为进行降级策略的服务请求提供正常的业务数据。
[0172]
本技术一些实施例中,可以直接将服务请求的url和对应的业务结果进行存储,也可以对服务请求的url进行泛化处理,计算出泛化url对应的md5作为唯一标识,与对应的业务结果进行存储。
[0173]
示例性地,如下表3所示,泛化处理可以为将服务请求的url中的用户customerid泛化为固定值5989126,设备deviceid的后8位去掉泛化为机型编号,具体泛化处理可以根
据实际情况确定,此处不做限定。对服务请求的url进行泛化处理,是为了降低存储数据量,提高查询数据命中率。
[0174]
表3
[0175][0176]
本技术一些实施例中,可以仅存储服务请求的url和对应的业务结果,还可以存储服务请求的数据类型等信息,具体可以根据实际情况确定,此处不做限定。
[0177]
示例性地,如下述表4所示,针对一条业务结果保存的相关信息可以包括以下内容类型:索引标识、文档唯一标识、用户请求url、业务api返回结果(http body)、业务api返回结果对应的数据类型、业务api返回响应头(http header)、header名称、header值、该调业务结果对应的最后更新时间。
[0178]
表4
[0179][0180]
本技术一些实施例中,在存在与该目标服务请求的url匹配的目标缓存数据的情况下,可以从降级服务控制系统中直接获取存储的该目标缓存数据,然后将目标缓存数据作为目标业务数据返回给终端设备,也可以获取与所述目标缓存数据对应的内容分发网络(content delivery network,cdn)重定向url,然后将cdn重定向url返回给终端设备,终端设备基于cdn重定向url访问cdn获取到数据;具体可以根据实际情况确定,此处不做限定。
[0181]
终端设备基于cdn重定向url访问cdn,若cdn中存储有目标缓存数据,则将目标缓存数据作为目标业务数据返回给终端设备,若cdn中没有存储目标缓存数据,则cdn通过“降级服务的回源接口”向降级服务控制系统转发终端设备的请求,以从降级服务控制系统获取到目标缓存数据,将目标缓存数据作为目标业务数据返回给终端设备,并将目标缓存数据存储到cdn本地。
[0182]
本技术一些实施例中,在存在与该目标服务请求的url匹配的目标缓存数据的情况下,将目标缓存数据确定为预存降级数据;在不存在与该目标服务请求的url匹配的缓存数据的情况下,可以先通过重试策略获取目标业务数据,如果成功获取到目标业务数据,为
终端设备返回目标业务数据,如果仍然没有成功获取到目标业务数据(业务结果异常)的情况下,将该目标服务请求对应的保底数据确定为预存降级数据为。具体可以根据实际情况确定,此处不做限定。
[0183]
本技术实施例中,周期性存储服务请求的业务结果,作为预存降级数据,以便在执行降级策略时作为服务请求对应的降级数据,分担业务压力,实现分流预期。同时预存业务结果作为降级数据,规避调用业务服务形成降级场景的二次压力,在有效保护业务系统的同时,无需为众多业务单独部署服务提供降级的服务,节约服务资源。
[0184]
如图11所示,本技术实施例还提供了一种降级服务控制设备1100,该降级服务控制设备1100可以为一个或多个服务器。该降级服务控制设备1100包括:处理器1101、存储器1102及存储在该存储器1102上并可在该处理器1101上运行的计算机程序,该计算机程序被该处理器1101执行时实现如上述降级服务控制方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0185]
如图12所示,本技术实施例还提供一种降级服务控制系统,包括:降级服务121、流处理平台122、采集服务123、数据存储服务124、全局降级调节服务125、降级策略后台服务126;其中,
[0186]
该降级服务121,被配置为:接收终端设备通过网关发送的目标服务请求,该目标服务请求对应承载该目标业务api的目标业务服务;该降级服务121包括多个pod,该降级服务121通过该多个pod管理包括该目标业务服务在内的至少一个业务服务的业务api;
[0187]
根据该降级服务121对应的全局pod异常比重,确定在当前全局时间窗口执行的目标全局降级策略,以及确定该目标服务请求所属的目标数据类型;该全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,该多个pod中每个pod调用业务api出现异常的比重的平均值,不同的全局降级策略针对的降级处理的服务请求的数据类型不同;
[0188]
在确定该目标全局降级策略针对该目标数据类型的服务请求不进行降级处理的情况下,基于负载均衡原理,调用该目标业务api执行该目标服务请求;在该目标业务api针对该目标服务请求返回的业务结果指示异常的情况下,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据;在该目标业务api针对该目标服务请求返回的业务结果指示正常的情况下,将该业务结果确定为该目标业务数据;
[0189]
在确定该目标全局降级策略针对该目标数据类型的服务请求进行降级处理的情况下,将与该目标服务请求对应的预存降级数据确定为该目标业务数据;
[0190]
通过该网关将该目标业务数据和该目标数据类型返回给该目标终端;
[0191]
该流处理平台122,被配置为:通过该网关接收该降级服务121返回的该目标业务数据和该目标数据类型;
[0192]
该采集服务123,被配置为:从该流处理平台122消费消息,并将该目标业务数据和该目标数据类型保存到该数据存储服务124;
[0193]
该降级策略后台服务126,被配置为:根据数据类型配置全局降级策略和/或单次请求降级策略,或,基于运维人员的操作配置全局降级策略和/或单次请求降级策略;
[0194]
通过该流处理平台122将配置的全局降级策略和/或单次请求降级策略推送给该降级服务121;
[0195]
全局降级调节服务125,被配置为:周期性获取该降级服务121对应的实时全局pod
异常比重;
[0196]
根据该实时全局pod异常比重,更新全局异常比重范围与预设降级策略的对应关系,以更新全局降级策略的降级等级,将该更新后的全局降级策略的降级等级发送给该降级策略后台服务126;
[0197]
该降级策略后台服务126,还被配置为:更新该更新后的全局降级策略的降级等级,并通过流处理平台122将该更新后的全局降级策略的降级等级推送给该降级服务121。
[0198]
本技术实施例中提供的降级服务控制系统可以实现如上述降级服务控制方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0199]
示例性地,如图13所示为本技术实施例提供的降级服务控制系统的架构示意图以及对应的降级服务控制方法的流程示意图(图中虚线框指示的区域为降级服务控制系统),上述流处理平台122为kafka平台,数据存储服务124为实时搜索引擎(elasticsearch,es,也称为数据仓)。
[0200]
图13中步骤3.0至步骤3.4为降级策略后台服务支持区分数据类型配置降级策略,按照对用户体验的有损程度,灵活定制各类型业务数据对应的降级等级。具体包括两种方式:全局降级调节服务定期获取降级服务所有pod的异常比重,计算对应的全局pod异常比重(和/或单pod异常比重),适配出最新的全局降级等级(和/或单次请求降级等级),更新降级策略后台服务的当前生效全局降级等级(和/或单次请求降级等级),并将最新降级策略通过kafka推送给降级服务;一种是运维人员通过降级策略后台服务,按照业务api异常比重配置全局降级策略(和/或单次请求降级等级)。降级策略后台服务将最新降级策略通过kafka推送给降级服务。
[0201]
全局降级调节服务通过“pod查询服务”获取降级服务所有pod的ip地址,固定单pod时间窗口访问降级服务的所有pod获取每个pod对应的单pod异常比重,和/或在固定的全局时间窗口访问降级服务的所有pod获取全局pod异常比重。
[0202]
示例性地,全局降级调节服务在每个时间窗口期计算出全局pod异常比重后,匹配全局降级策略,进行全局降级等级的调整处理。通过调用降级策略后台服务的更新策略接口,将后台数据库的全局降级等级更新,同时降级策略后台服务发送变更消息到kafka,降级服务所有pod消费kafka消息更新为最新的全局降级等级,此后的服务请求全部按照最新降级等级处理。
[0203]
运维人员通过降级策略后台服务配置全局自动降级策略,全体pod异常状态比重越高,需要设定有损程度越高的降级策略,达到全局异常比重越高,降级服务整体分担业务api流量压力越多的目的。和单次自动降级策略一样,降级策略后台服务采用“定期同步全量”和“实时同步增量”的两种方式,通过kafka平台将全局自动降级策略同步给降级服务。
[0204]
运维人员通过降级策略后台服务配置单次请求自动降级策略,单pod异常比重越高,需要设定不可重试和有损程度越高的降级策略,达到感知异常比重越高,单pod分担业务api流量压力越多的目的。降级策略后台服务采用“定期同步全量降级策略”和“实时同步变化的增量降级策略”的两种方式,将降级配置发送到kafka平台;降级服务启动时从kafka接收全量降级策略,启动后从kafka接收增量变化的降级策略。
[0205]
示例性地,如图14所示,全局pod异常比重在50%之内,采用“完全无损降级策略”的方式,依赖单次请求自动降级尽可能获取无损或最小有损数据;50%~100%之内,采用“重度有损降级策略”的方式,全部请求遵循“优先保护业务系统”的原则,对所有数据类型都进行自动降级。
[0206]
示例性地,如图15所示,pod异常比重在10%之内,采用“重试+轻度有损降级策略”的方式,单次请求重试调用业务api仍不成功,可以将个性推荐数据降级为非个性化数据下发;10%~25%之内,采用“重试+中度有损降级策略”的方式,除了个性推荐数据,用户画像数据可以降级为任意采样的一个画像群体数据下发;25%~50%之内,采用“重试+重度有损降级策略”的方式,除了个性推荐数据和用户画像数据,用户定制数据可以降级为匿名用户业务数据下发;50%~100%之内,采用“不重试+重度有损降级策略”的方式,遵循“优先保护业务系统”的原则,不再重试获取业务api的无损数据,单次请求对所有数据类型都进行自动降级。
[0207]
降级服务接收终端设备发送的服务请求,数据类型匹配全局降级等级则返回降级数据;反之则调用业务api获取数据,如果获取失败,根据单pod异常比重适配出单次请求降级策略(包括:是否重试,降级等级),完成单次请求自动降级处理后返回降级数据。
[0208]
降级服务调用业务api获得业务结果后,response header中添加jhk-d-collect-data=1的采集标识,由网关识别后发送kafka异步消息给采集服务,消息体包含用户请求url、数据类型、业务数据结果、业务返回响应头。采集服务对用户请求url进行泛化处理,计算出泛化url对应的md5作为唯一标识,将降级数据保存到es。
[0209]
降级服务的查询接口,负责接收终端设备的服务请求,匹配全局降级策略和单次请求降级策略进行降级处理。
[0210]
图13中步骤1.0至步骤1.4为通过业务系统能够获得正常业务结果的服务请求,在降级服务控制系统的多个模块之间的数据流转过程。具体逻辑可以包括终端设备将用户触发的服务请求经过网关路由到降级服务,在降级服务适配到不可进行全局降级,然后调用业务系统的业务api获取业务结果和数据类型。经由网关返回数据前,网关发送异步消息给kafka平台,采集服务从kafka消费消息,将业务结果和数据类型保存到es,作为后续异常的服务请求对应的预存降级数据。
[0211]
图13中步骤2.0至步骤2.8为通过业务系统不能够获得正常业务结果的服务请求,如何基于全局降级策略或单次请求降级策略返回预存降级数据的过程。其中,具体逻辑示例性地可以参考图16和图18,其中,图16所示为降级服务-查询接口的逻辑处理流程图(对应图13中的步骤2.0至步骤2.1),包括以下s401至s413。
[0212]
s401、接收目标服务请求。
[0213]
降级服务通过网关接收终端设备发送的目标服务请求。
[0214]
s402、获取当前全局降级策略和目标服务请求的目标数据类型。
[0215]
根据目标全局pod异常比重,确定当前全局降级策略。
[0216]
s403、确定目标服务请求是否能够执行全局降级处理。
[0217]
不同的全局降级策略针对不同数据类型的服务请求进行降级处理,如果当前全局降级策略针对目标数据类型的服务请求进行降级处理,则确定目标服务请求能够执行全局降级处理,执行下述的s404,如果当前全局降级策略针对目标数据类型的服务请求不进行降级处理,则确定目标服务请求不能够执行全局降级处理,执行下述的s405。
[0218]
s404、将cdn重定向url返回给终端设备。
[0219]
终端设备收到cdn重定向url后,基于cdn重定向url向cdn请求目标服务请求对应的目标业务数据。
[0220]
s405、调用目标业务api执行目标服务请求。
[0221]
s406、确定是否获取正常的业务结果。
[0222]
在调用目标业务api执行目标服务请求,获取正常的业务结果的情况下,执行下述s407;在调用目标业务api执行目标服务请求,获取异常的业务结果的情况下,执行下述s408。
[0223]
s407、将正常的业务结果返回给终端设备。
[0224]
s408、获取目标业务api对应的目标单pod异常比重。
[0225]
s409、匹配与目标单pod异常比重对应的单次请求降级策略。
[0226]
s410、确定目标服务请求是否能够执行单次请求降级处理。
[0227]
不同的单次请求降级策略也针对不同数据类型的服务请求进行降级处理,在根据目标单pod异常比重确定当前的单次请求降级策略针对目标数据类型的服务请求进行降级处理的情况下,确定目标服务请求能够执行单次请求降级处理,执行下述s411;在根据目标单pod异常比重确定当前的单次请求降级策略针对目标数据类型的服务请求不进行降级处理的情况下,确定目标服务请求不能够执行单次请求降级处理,执行下述s412。
[0228]
s411、将cdn重定向url返回给终端设备。
[0229]
终端设备收到cdn重定向url后,基于cdn重定向url向cdn请求目标服务请求对应的目标业务数据。
[0230]
s412、确定重试策略执行次数是否等于次数阈值。
[0231]
在重试策略执行次数小于次数阈值时,执行上述s405,即通过再次调用目标业务api执行目标服务请求,以获取业务结果,达到重新尝试调用业务api执行服务请求的目的;在重试策略执行次数等于次数阈值时,执行下述s413。
[0232]
s413、将目标服务请求对应的保底数据返回给终端设备。
[0233]
其中,保底数据是配置的固定默认数据,等同限流或放通业务api时返回终端的特定设置数据,用于无法降级时的下发数据。
[0234]
示例性地,保底数据可以为空数据。
[0235]
需要说明的是,上述s413还可以替换为将cdn重定向url返回给终端设备,以使终端设备收到cdn重定向url后,基于cdn重定向url向cdn请求目标服务请求对应的目标业务数据。
[0236]
图17为降级服务匹配全局降级策略和单次请求降级策略的逻辑流程图对应上述图16。降级服务接收目标服务请求,然后获取全局pod异常比重,基于全局pod异常比重匹配当前全局降级策略,确定当前全局降级策略是否针对目标服务请求所属的数据类型进行降级处理。降级服务在确定当前全局降级策略针对目标服务请求所属的数据类型进行降级处理的情况下,确定可降级,向终端设备发送预存降级数据,终端设备获得预存降级数据;降级服务在确定当前全局降级策略针对目标服务请求所属的数据类型不进行降级处理的情况下,确定不可降级,调用业务api执行目标服务请求,在业务api返回的业务结果指示正常的情况下,调用业务api执行目标服务请求成功,将业务结果返回给终端设备;在在业务api返回的业务结果指示异常的情况下,调用业务api执行目标服务请求失败,匹配单次请求降
级策略,当目标服务请求匹配上“重试策略加轻度有损降级策略(或中度有损降级策略或重度有损降级策略)”时,若重试策略成功,将业务结果返回给终端设备,若重试策略失败,将预存降级数据返回给终端设备,则终端设备获得业务结果或预存降级数据;若目标服务请求匹配上“不重试策略加重度有损降级策略”时,将预存降级数据返回给终端设备,则终端设备获得预存降级数据。
[0237]
本技术实施例中,通过全局pod异常比重适配全局降级策略,目标服务请求的数据类型如果匹配全局降级策略则下发降级数据,不匹配则继续调用业务api,完成了重度异常场景对全体终端请求的降级控制。针对调用业务api失败的请求,通过单pod异常比重适配单次请求降级策略,异常比重低则代表业务可用性高,采用“重试+轻度或中度或重度有损降级策略”的处理,反之异常比重高则代表业务可用性低,采用“不重试+重度有损降级”的处理。通过实时计算降级服务的全局pod和单pod的2个层次的异常比重,分层适配降级阈值,决策出降级方式、降级范围和最小有损数据,达成了全周期业务异常覆盖的目标。
[0238]
图18所示为降级服务-回源接口的逻辑处理流程图(对应图13中的步骤2.2至步骤2.8),包括以下s501至s509。
[0239]
s501、通过网关接收cdn获取目标服务请求对应的预存降级数据的请求。
[0240]
终端设备收到cdn重定向url后,基于cdn重定向url向cdn请求目标服务请求对应的目标业务数据,cdn查询cdn中没有存储目标服务请求对应的目标业务数据的情况下,通过回源接口向降级服务发送请求获取目标服务请求对应的预存降级数据的消息。
[0241]
需要说明的是,cdn查询cdn中存储有目标服务请求对应的目标业务数据的情况下,将目标业务数据返回给终端设备。
[0242]
s502、确定es是否包括预存降级数据。
[0243]
查询es以确定es是否包括(目标服务请求对应的)预存降级数据。对目标服务请求的url进行泛化处理得到泛化url md5,基于泛化url md5在es中查询,若es中存在与泛化url md5匹配的降级数据,则确定es包括预存降级数据,执行下述s503;若es中不存在与泛化url md5匹配的降级数据,则确定es不包括预存降级数据,执行下述s505。
[0244]
s503、从es获取预存降级数据。
[0245]
s504、将预存降级数据返回给cdn。
[0246]
cdn接收到预存降级数据之后,将预存降级数据作为目标业务数据返回给终端设备。
[0247]
其中,cdn还可以基于预存降级数据生成cdn缓存文件,并设置cdn缓存文件的有效期,此时,通常情况下设置cdn缓存文件的有效期不为0。
[0248]
s505、调用业务api执行目标服务请求。
[0249]
s506、确定是否获取正确的业务结果。
[0250]
在业务结果正常的情况下,执行下述s507;在业务结果正常的情况下,执行下述s508。
[0251]
s507、将正确的业务结果保存至es,并将正确的业务结果返回给cdn。
[0252]
cdn接收到正确的业务结果之后,将正确的业务结果作为目标业务数据返回给终端设备。
[0253]
其中,cdn还可以基于正确的业务结果生成cdn缓存文件,并设置cdn缓存文件的有
效期,此时,通常情况下设置cdn缓存文件的有效期不为0。
[0254]
s508、获取目标服务请求对应的保底数据。
[0255]
s509、将保底数据返回给cdn。
[0256]
cdn接收到保底数据之后,将保底数据作为目标业务数据返回给终端设备。
[0257]
其中,cdn基于保底数据不生成cdn缓存文件。
[0258]
本发明实施例提供还提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述降级服务控制方法执行的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0259]
其中,该计算机可读存储介质可以为只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0260]
本发明提供一种计算机程序产品,包括:当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述的降级服务控制方法。
[0261]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
[0262]
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。

技术特征:
1.一种降级服务控制方法,其特征在于,包括:接收终端设备发送的目标服务请求;基于负载均衡原理,调用目标业务api执行所述目标服务请求,所述目标服务请求对应承载所述目标业务api的目标业务服务;在所述目标业务api针对所述目标服务请求返回的业务结果指示异常的情况下,针对所述目标服务请求执行单次请求降级策略,以获得与所述目标服务请求对应的目标业务数据;将所述目标业务数据发送至所述终端设备。2.根据权利要求1所述的方法,其特征在于,应用于包括降级服务的降级服务控制系统,所述降级服务包括多个pod,所述降级服务通过所述多个pod管理包括所述目标业务服务在内的至少一个业务服务的业务api;所述针对所述目标服务请求执行单次请求降级策略,以获得与所述目标服务请求对应的目标业务数据之前,所述方法还包括:确定所述目标业务api对应的目标单pod异常比重,所述目标单pod异常比重用于指示在当前单pod时间窗口之前的上一单pod时间窗口内,目标pod调用业务api出现异常的比重;所述目标pod为所述多个pod中调用所述目标业务api执行所述目标服务请求的pod;在所述目标单pod异常比重位于目标单pod异常比重范围内的情况下,将所述目标单pod异常比重范围对应的目标预定降级策略确定为所述单次请求降级策略,不同的单pod异常比重范围对应不同的预定降级策略。3.根据权利要求2所述的方法,其特征在于,在所述目标单pod异常比重范围为第一异常比重范围的情况下,所述目标预定降级策略为先执行重试策略,在所述重试策略执行成功的情况下,将所述重试策略对应的返回数据作为所述目标业务数据,在所述重试策略执行失败的情况下,执行第一降级策略;所述第一降级策略为在所述目标服务请求的数据类型为第一类型的情况下,将与所述目标服务请求对应的预存降级数据确定为所述目标业务数据,在所述目标服务请求的数据类型为除所述第一类型之外的一种的情况下,再次执行所述重试策略;所述重试策略为基于负载均衡原理调用所述目标pod对应的业务api执行所述目标服务请求;和/或,在所述目标单pod异常比重范围为第二异常比重范围的情况下,所述目标预定降级策略为先执行所述重试策略,在所述重试策略执行成功的情况下,将所述重试策略对应的返回数据作为所述目标业务数据,在所述重试策略执行失败的情况下,执行第二降级策略;所述第二降级策略为在所述目标服务请求的数据类型为第一类型和第二类型中的一种的情况下,将与所述目标服务请求对应的预存降级数据确定为所述目标业务数据,在所述目标服务请求的数据类型为除所述第一类型和所述第二类型之外的一种的情况下,再次执行所述重试策略;和/或,在所述目标单pod异常比重范围为第三异常比重范围的情况下,所述目标预定降级策略为先执行所述重试策略,在所述重试策略执行成功的情况下,将所述重试策略对应的返回数据作为所述目标业务数据,在所述重试策略执行失败的情况下,执行第三降级策略;所
述第三降级策略为将与所述目标服务请求对应的预存降级数据确定为所述目标业务数据,所述目标服务请求的数据类型为第一类型、第二类型和第三类型中的一种;和/或,在所述目标单pod异常比重范围为第四异常比重范围的情况下,所述目标预定降级策略为所述第三降级策略;其中,所述第一异常比重范围中的每个值均小于所述第二异常比重范围中的最小值,所述第二异常比重范围中的每个值均小于所述第三异常比重范围中的最小值,所述第三异常比重范围中的每个值均小于所述第四异常比重范围中的最小值;所述第一类型对应的数据的重要程度小于所述第二类型对应的数据的重要程度,所述第二类型对应的数据的重要程度小于所述第三类型对应的数据的重要程度。4.根据权利要求2所述的方法,其特征在于,所述基于负载均衡原理,调用目标业务api执行所述目标服务请求之前,所述方法还包括:确定所述降级服务对应的全局pod异常比重,所述全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,所述多个pod中每个pod调用业务api出现异常的比重的平均值;确定所述全局pod异常比重是否位于预设全局异常比重范围内;所述基于负载均衡原理,调用目标业务api执行所述目标服务请求,包括:在所述全局pod异常比重未位于所述预设全局异常比重范围内的情况下,基于所述负载均衡原理,调用所述目标业务api执行所述目标服务请求;所述方法还包括:在所述全局pod异常比重位于所述预设全局异常比重范围内的情况下,针对所述目标服务请求执行预设全局降级策略,以得到与所述目标服务请求对应的预存降级数据。5.根据权利要求2所述的方法,其特征在于,所述基于负载均衡原理,调用目标业务api执行所述目标服务请求之前,所述方法还包括:确定在当前全局时间窗口执行的目标全局降级策略,以及确定所述目标服务请求所属的目标数据类型;不同的全局降级策略针对的降级处理的服务请求的数据类型不同;所述基于负载均衡原理,调用目标业务api执行所述目标服务请求,包括:在确定所述目标全局降级策略针对所述目标数据类型的服务请求不进行降级处理的情况下,基于所述负载均衡原理,调用所述目标业务api执行所述目标服务请求;所述方法还包括:在确定所述目标全局降级策略针对所述目标数据类型的服务请求进行降级处理的情况下,将与所述目标服务请求对应的预存降级数据确定为所述目标业务数据。6.根据权利要求5所述的方法,其特征在于,所述确定在当前全局时间窗口执行的目标全局降级策略,包括:确定所述降级服务对应的全局pod异常比重,所述全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,所述多个pod中每个pod调用业务api出现异常的比重的平均值;在所述全局pod异常比重位于至少一个全局异常比重范围中的目标全局异常比重范围内的情况下,将所述目标全局异常比重范围对应的目标预设降级策略确定为所述目标全局
降级策略,不同的全局异常比重范围对应不同的预设降级策略。7.根据权利要求6所述的方法,其特征在于,在所述目标全局异常比重范围为第一全局异常比重范围的情况下,所述目标预设降级策略为针对第一数据类型的服务请求执行降级处理以获取对应的预存降级数据,针对除所述第一数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,在所述目标全局异常比重范围为第二全局异常比重范围的情况下,所述目标预设降级策略为针对第一数据类型和第二数据类型中的一种的服务请求执行降级处理以获取对应的预存降级数据,针对除所述第一数据类型和所述第二数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,在所述目标全局异常比重范围为第三全局异常比重范围的情况下,所述目标预设降级策略为针对第一数据类型、第二数据类型和第三数据类型中的一种的服务请求执行降级处理以获取对应的预存降级数据,针对除所述第一数据类型、所述第二数据类型和所述第三数据类型之外的服务请求不执行降级处理以基于负载均衡原理调用业务api执行服务请求;和/或,在所述目标全局异常比重范围为第四全局异常比重范围的情况下,所述目标预设降级策略为针对任意数据类型的服务请求执行降级处理以获取对应的预存降级数据;其中,所述第一全局异常比重范围中的每个值均小于所述第二全局异常比重范围中的最小值,所述第二全局异常比重范围中的每个值均小于所述第三全局异常比重范围中的最小值,所述第三全局异常比重范围中的每个值均小于所述第四全局异常比重范围中的最小值;所述第一数据类型对应的数据的重要程度小于所述第二数据类型对应的数据的重要程度,所述第二数据类型对应的数据的重要程度小于所述第三数据类型对应的数据的重要程度,所述第三数据类型对应的数据的重要程度小于除所述第一数据类型、所述第二数据类型和所述第三数据类型之外的数据类型对应的数据的重要程度。8.根据权利要求7所述的方法,其特征在于,所述将所述目标全局异常比重范围对应的目标预设降级策略确定为所述目标全局降级策略之前,所述方法还包括:确定所述目标预设降级策略的降级等级是否高于或等于所述上一全局时间窗口执行的第一全局降级策略的降级等级;所述将所述目标全局异常比重范围对应的目标预设降级策略确定为所述目标全局降级策略,包括:在确定所述目标预设降级策略的降级等级高于或等于所述第一全局降级策略的降级等级的情况下,将所述目标全局异常比重范围对应的目标预设降级策略确定为所述目标全局降级策略;所述方法还包括:在确定所述目标预设降级策略的降级等级低于所述第一全局降级策略的降级等级的情况下,确定目标数量是否等于数量阈值,所述目标数量为在所述当前全局时间窗口之前
连续执行所述第一全局降级策略的时间窗口的数量;在所述目标数量等于所述数量阈值的情况下,将第二全局降级策略确定为所述目标全局降级策略;所述第二全局降级策略的降级等级比所述第一全局降级策略的降级等级低一个等级;在所述目标数量小于所述数量阈值的情况下,将所述第一全局降级策略确定为所述目标全局降级策略;其中,全局降级策略的降级等级每升高一个等级,进行降级处理的服务请求的数据类型增加至少一种,且增加的每种数据类型对应的数据的重要程度大于非增加的数据类型对应的数据的重要程度。9.根据权利要求8所述的方法,其特征在于,所述在所述目标数量等于所述数量阈值的情况下,将第二全局降级策略确定为所述目标全局降级策略,包括:在所述目标数量等于所述数量阈值,且在所述当前全局时间窗口之前的所述目标数量个全局时间窗口中的每个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级均低于对应的前一个全局时间窗口执行的全局降级策略的降级等级的情况下,将所述第二全局降级策略确定为所述目标全局降级策略;所述方法还包括:在所述目标数量等于所述数量阈值,且在所述当前全局时间窗口之前的所述目标数量个全局时间窗口中的至少一个全局时间窗口中,根据全局pod异常比重确定的全局降级策略的降级等级高于或等于对应的前一个全局时间窗口执行的全局降级策略的降级等级的情况下,将所述第一全局降级策略确定为所述目标全局降级策略。10.一种降级服务控制系统,其特征在于,包括:降级服务、流处理平台、采集服务、数据存储服务、全局降级调节服务、降级策略后台服务;所述降级服务,被配置为:接收终端设备通过网关发送的目标服务请求,所述目标服务请求对应承载所述目标业务api的目标业务服务;所述降级服务包括多个pod,所述降级服务通过所述多个pod管理包括所述目标业务服务在内的至少一个业务服务的业务api;根据所述降级服务对应的全局pod异常比重,确定在当前全局时间窗口执行的目标全局降级策略,以及确定所述目标服务请求所属的目标数据类型;所述全局pod异常比重为在当前全局时间窗口之前的上一全局时间窗口内,所述多个pod中每个pod调用业务api出现异常的比重的平均值,不同的全局降级策略针对的降级处理的服务请求的数据类型不同;在确定所述目标全局降级策略针对所述目标数据类型的服务请求不进行降级处理的情况下,基于负载均衡原理,调用所述目标业务api执行所述目标服务请求;在所述目标业务api针对所述目标服务请求返回的业务结果指示异常的情况下,针对所述目标服务请求执行单次请求降级策略,以获得与所述目标服务请求对应的目标业务数据;在所述目标业务api针对所述目标服务请求返回的业务结果指示正常的情况下,将所述业务结果确定为所述目标业务数据;在确定所述目标全局降级策略针对所述目标数据类型的服务请求进行降级处理的情况下,将与所述目标服务请求对应的预存降级数据确定为所述目标业务数据;通过所述网关将所述目标业务数据和所述目标数据类型返回给所述目标终端;所述流处理平台,被配置为:通过所述网关接收所述降级服务返回的所述目标业务数
据和所述目标数据类型;所述采集服务,被配置为:从所述流处理平台消费消息,并将所述目标业务数据和所述目标数据类型保存到所述数据存储服务;所述降级策略后台服务,被配置为:根据数据类型配置全局降级策略和/或单次请求降级策略,或,基于运维人员的操作配置全局降级策略和/或单次请求降级策略;通过所述流处理平台将配置的全局降级策略和/或单次请求降级策略推送给所述降级服务;全局降级调节服务,被配置为:周期性获取所述降级服务对应的实时全局pod异常比重;根据所述实时全局pod异常比重,更新全局异常比重范围与预设降级策略的对应关系,以更新全局降级策略的降级等级,将所述更新后的全局降级策略的降级等级发送给所述降级策略后台服务;所述降级策略后台服务,还被配置为:更新所述更新后的全局降级策略的降级等级,并通过流处理平台将所述更新后的全局降级策略的降级等级推送给所述降级服务。

技术总结
本公开涉及一种降级服务控制方法及系统,应用于降级服务控制领域,可以通过单次请求降级策略为用户返回正常的业务数据,可以提高用户体验。该方法包括:接收终端设备发送的目标服务请求;基于负载均衡原理,调用目标业务API执行该目标服务请求,该目标服务请求对应承载该目标业务API的目标业务服务;在该目标业务API针对该目标服务请求返回的业务结果指示异常的情况下,针对该目标服务请求执行单次请求降级策略,以获得与该目标服务请求对应的目标业务数据;将该目标业务数据发送至该终端设备。备。备。


技术研发人员:杜萌 王明磊 王世文
受保护的技术使用者:聚好看科技股份有限公司
技术研发日:2023.06.13
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐