业务限流方法、装置、电子设备及存储介质与流程

未命名 10-08 阅读:65 评论:0


1.本发明涉及数据处理技术领域,尤其涉及一种业务限流方法、装置、电子设备及存储介质。


背景技术:

2.在很多业务处理系统中,接收服务请求的入口处都具备流量限制的功能,利用此功能可以限制给予后端业务系统的处理压力,降低系统崩溃风险。请求处理需要消耗系统的资源,当某个系统模块的系统资源不够时,就可能出现请求处理变慢、请求处理超时、无法及时处理新请求等情况,这可能会产生一系列的连锁反应,最终影响用户体验。
3.目前,通常采用通用限流的方式进行限流,但是这种限流方式对核心业务和高流量业务的处理不够友好,限流准确性较低。


技术实现要素:

4.本发明的主要目的在于提供一种业务限流方法、装置、电子设备及存储介质,旨在解决目前的通用限流方式限流准确性低的问题。
5.为实现上述目的,本发明提供一种业务限流方法,该方法包括:
6.接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;
7.若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;
8.若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;
9.若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。
10.可选地,所述判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件的步骤包括:
11.判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在;
12.若所述业务场景在所述二级布隆过滤器中存在,则确定所述业务场景符合所述二级准入条件;
13.若所述业务场景在所述二级布隆过滤器中不存在,则确定所述业务场景不符合所述二级准入条件。
14.可选地,所述判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在的步骤包括:
15.确定所述业务场景的业务类型和接口请求类型;
16.若所述业务类型为第一重要类型,或所述接口请求类型为第一高频请求类型,则确定所述业务场景在所述二级布隆过滤器中存在;
17.若所述业务类型为第一普通类型,且所述接口请求类型为第一低频请求类型,则确定所述业务场景在所述二级布隆过滤器中不存在。
18.可选地,在若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获
取令牌的步骤之后,所述方法还包括:
19.若获取令牌成功,则执行所述业务请求;
20.若获取令牌失败,则判断所述业务场景是否符合第三级令牌桶的三级准入条件。
21.可选地,所述判断所述业务场景是否符合第三级令牌桶的三级准入条件的步骤包括:
22.判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在;
23.若所述业务场景在所述三级布隆过滤器中存在,则确定所述业务场景符合所述三级准入条件;
24.若所述业务场景在所述三级布隆过滤器中不存在,则确定所述业务场景不符合所述三级准入条件。
25.可选地,所述判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在的步骤包括:
26.确定所述业务场景的业务类型和接口请求类型;
27.若所述业务类型为第二重要类型,或所述接口请求类型为第二高频请求类型,则确定所述业务场景在所述三级布隆过滤器中存在;
28.若所述业务类型为第二普通类型,且所述接口请求类型为第二低频请求类型,则确定所述业务场景在所述三级布隆过滤器中不存在。
29.可选地,所述业务限流方法还包括:
30.获取预设时间周期内的业务限流需求;
31.根据所述业务限流需求对所述二级准入条件进行调整。
32.此外,为实现上述目的,本发明还提供一种业务限流装置,所述业务限流装置包括:
33.接收模块,用于接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;
34.判断模块,用于若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;
35.获取模块,用于若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;
36.限流模块,用于若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。
37.此外,为实现上述目的,本发明还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的业务限流程序,所述业务限流程序配置为实现如上文所述的业务限流方法的步骤。
38.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有业务限流程序,所述业务限流程序被处理器执行时实现如上文所述的业务限流方法的步骤。
39.本发明公开了一种业务限流方法,接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。先
从第一级令牌桶中获取令牌,无法从第一级令牌桶中获取令牌则判断是否满足下一级别,也即第二级令牌桶的二级准入条件,不符合二级准入条件的业务请求将被限流,无法得到执行,而符合二级准入条件的业务请求可以尝试继续在第二级令牌桶中获取令牌,从而通过准入条件对不同业务场景下的业务请求进行分级限流,可以针对核心业务和高流量业务设置准入条件,优先保障其流量使用,提升了业务限流的准确性。
附图说明
40.图1为本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
41.图2为本发明业务限流方法第一实施例的流程示意图;
42.图3为本发明业务限流方法第二实施例的流程示意图;
43.图4为本发明业务限流方法第三实施例的流程示意图;
44.图5为本发明业务限流方法第四实施例的流程示意图;
45.图6为本发明业务限流方法第五实施例的流程示意图;
46.图7为本发明实施例业务限流装置的示意图。
47.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
48.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
49.参照图1,图1为本发明实施例方案涉及的硬件运行环境的电子设备结构示意图。
50.如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
51.本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
52.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及业务限流程序。
53.在图1所示的电子设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在电子设备中,所述电子设备通过处理器1001调用存储器1005中存储的业务限流程序,并执行本发明实施例提供的业务限流方法。
54.本发明实施例提供了一种业务限流方法,参照图2,图2为本发明一种业务限流方法第一实施例的流程示意图。
55.本实施例中,所述业务限流方法包括:
56.步骤s10,接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;
57.业务请求可视为一种指令,可以指示业务系统中的功能模块执行与之相应的操作,完成某些功能。具体的一些业务请求例如登录请求、支付请求、查询请求等。令牌桶是指具有一定的容量,其中可以存储令牌的一种虚拟产品。令牌可视为业务请求准予执行的凭证,获取到令牌的业务请求可以被执行。本实施例中设置多级令牌桶,业务请求首先在未设置准入条件的第一级令牌桶中获取令牌。第一级令牌桶可视为通用令牌桶,没有准入条件,因此所有的业务请求都可以先从第一级令牌桶中获取令牌。每个业务请求需要消耗的令牌数量可能不同,可以根据业务请求的需求令牌数量在第一级令牌桶中取相应数量的令牌。若在第一级令牌桶中获取令牌成功,则可以执行此业务请求。
58.步骤s20,若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;
59.由于第一级令牌桶的容量和令牌的产生速度有限,可能在第一级令牌桶中取不到令牌,也即获取令牌失败,例如,第一级令牌桶中的令牌为空,或者第一级令牌桶中令牌的数量少于业务请求需要的令牌数量。此时可以向下一级别的令牌桶获取令牌。第二级令牌桶设置在第一级令牌桶之后,且设置有二级准入条件,需要通过业务请求关联的业务场景是否满足二级准入条件的判断来决定后续行动。
60.业务场景可视为对业务请求的重要程度的描述。二级准入条件则是进入第二级令牌桶,在第二级令牌桶中获取令牌的门槛,其中可以包含对业务请求重要程度的要求。业务请求可以使用不同的标记来表示业务场景,对业务场景的重要程度分类。在判断业务场景是否符合二级准入条件时,就可以对标记进行识别,判断标记对应的重要程度是否满足二级准入条件对重要程度的要求。
61.步骤s30,若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;
62.在业务场景符合二级准入条件的情况下,可以在第二级令牌桶中获取令牌。若能够在第二级令牌桶中成功取到令牌,则可以执行该业务请求。若无法在第二级令牌桶中取到令牌,则对该业务请求进行限流。
63.步骤s40,若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。
64.在业务场景不符合二级准入条件的情况下,无法在第二级令牌桶中获取令牌,业务请求无法得到执行而被限流,可以返回业务限流信息,提示业务请求已被限流,拒绝执行。若此业务请求仍需要被执行,可以再次发起业务请求,在业务流量饱和度较低的情况下,此业务请求可能在第一级令牌桶中可以取到令牌而执行。
65.在本实施例中,接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。先从第一级令牌桶中获取令牌,无法从第一级令牌桶中获取令牌则判断是否满足下一级别,也即第二级令牌桶的二级准入条件,不符合二级准入条件的业务请求将被限流,无法得到执行,而符合二级准入条件的业务请求可以尝试继续在第二级令牌桶中获取令牌,从而通过准入条件对不同业务场景下的业务请求进行分级限流,可以针对核心业务和高流量业务设置准入条件,优先保
障其流量使用,提升了业务限流的准确性。
66.进一步的,在本发明业务限流方法的第二实施例中,参照图3,该方法包括:
67.步骤s21,判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在;
68.布隆过滤器可以用于检索一个元素是否在一个集合中。本实施例将二级布隆过滤器作为第二级令牌桶的准入过滤器,对业务请求进行过滤。二级布隆过滤器设置在第二级令牌桶之前,在获取第一级令牌桶中的令牌失败之后,对业务请求关联的业务场景进行过滤条件的判断。
69.在一些可行的实施方式中,判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在的步骤可以包括:
70.步骤s211,确定所述业务场景的业务类型和接口请求类型;
71.业务类型可视为业务请求的重要程度类型,接口请求类型可视为响应业务请求的接口的类型。在业务系统中,接口是响应业务请求的窗口,为业务请求提供执行的基础。本实施例中的接口可以为api(application programming interface,应用程序编程接口)。不同的业务请求可以请求相同的接口。业务类型可以由业务请求中的业务类型标识获得。业务类型标识可以作为响应和执行业务请求的依据,也可以作为确定业务类型的依据。接口请求类型可以通过统计接口的请求次数得到。
72.步骤s212,若所述业务类型为第一重要类型,或所述接口请求类型为第一高频请求类型,则确定所述业务场景在所述二级布隆过滤器中存在;
73.在使用分两级的令牌桶进行业务限流的情况下,第一重要类型可以为区别于第一普通类型的业务类型,也即第一重要类型为重要程度高于普通业务的类型,第一高频请求类型可以为请求次数高于第一低频请求类型的请求次数的类型。
74.例如,将第一级令牌桶和第二级令牌桶之间的接口请求次数的划分比例定为8:2,在一定时间段内,请求次数在前20%的接口为二级接口,添加至二级布隆过滤器中,请求次数在后80%的接口为一级接口。可以通过滑动窗口算法,统计当前服务的api在一定时间窗内的请求次数,并根据请求次数进行排序,得到列表,取列表前20%的api存入二级布隆过滤器。将二级接口的请求次数作为第一高频请求类型的判断依据,业务请求的接口为二级接口,则可以判断为第一高频请求类型,确定在二级布隆过滤器中存在。业务类型的判断与上述过程相似,将业务的重要程度划分为不同的等级,在二级布隆过滤器中添加。上述划分比例可以根据实际需要进行动态调整,适应对不同重要程度和请求次数接口的要求。
75.步骤s213,若所述业务类型为第一普通类型,且所述接口请求类型为第一低频请求类型,则确定所述业务场景在所述二级布隆过滤器中不存在。
76.第一普通类型可以为相对于第一重要类型来说重要程度更低的业务类型,第一低频请求类型为请求次数低于第一高频请求类型的类型。参照上述划分比例,请求次数在后80%的一级接口为第一低频请求类型。上述第一普通类型和第一低频请求类型未添加至二级布隆过滤器中,因此可以确定在二级布隆过滤器中不存在。
77.步骤s22,若所述业务场景在所述二级布隆过滤器中存在,则确定所述业务场景符合所述二级准入条件;
78.在业务场景在二级布隆过滤器中存在的情况下,可以表示业务场景符合二级准入
条件,该业务请求可以在第二级令牌桶中获取令牌,满足业务请求的执行需求。
79.步骤s23,若所述业务场景在所述二级布隆过滤器中不存在,则确定所述业务场景不符合所述二级准入条件。
80.在业务场景在二级布隆过滤器中不存在的情况下,可以确定该业务场景不符合二级准入条件,业务请求无法进入第二级令牌桶中获取令牌,此业务请求将被限流。
81.在本实施例中,采用二级布隆过滤器作为第二级令牌桶的准入条件,对普通业务和低频业务进行限流,保证重要业务和高频业务的流量使用,进一步增加限流的准确性,提高业务满意度。
82.进一步的,在本发明业务限流方法的第三实施例中,参照图4,该方法包括:
83.步骤s50,若获取令牌成功,则执行所述业务请求;
84.在第二级令牌桶中获取到令牌的情况下,可以表示第二级令牌桶中的令牌数量满足业务请求所需的令牌数量的要求,该业务请求可以由接口响应,进而执行。
85.步骤s60,若获取令牌失败,则判断所述业务场景是否符合第三级令牌桶的三级准入条件。
86.本实施例中,业务系统中可以设置三级令牌桶,在第二级令牌桶中获取令牌失败的情况下,尝试在第二级令牌桶之后的第三级令牌桶中获取令牌。第三级令牌桶设置有三级准入条件,符合三级准入条件的业务请求可以进入第三级令牌桶中获取令牌。
87.在一些可行的实施方式中,判断所述业务场景是否符合第三级令牌桶的三级准入条件的步骤可以包括:
88.步骤s61,判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在;
89.设置在第三级令牌桶之前的三级布隆过滤器可以作为包含三级准入条件的过滤器,通过业务场景的相关特征是否存在于三级布隆过滤器中的情况,来确定是否符合三级准入条件。
90.在一些可行的实施方式中,判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在的步骤可以包括:
91.步骤s611,确定所述业务场景的业务类型和接口请求类型;
92.业务类型可以由业务请求中的业务类型标识获得。业务类型标识可以作为响应和执行业务请求的依据,也可以作为确定业务类型的依据。接口请求类型可以通过统计接口的请求次数得到。
93.步骤s612,若所述业务类型为第二重要类型,或所述接口请求类型为第二高频请求类型,则确定所述业务场景在所述三级布隆过滤器中存在;
94.在设置三级令牌桶的场景下,多个高级别令牌桶之间的准入条件不同,而低级别令牌桶的准入条件包含高级别令牌桶的准入条件。例如,第一级令牌桶为通用令牌桶,可以直接在第一级令牌桶中获取令牌,而第二级令牌桶流量保护令牌桶,符合二级准入条件的业务请求才能在第二级令牌桶中获取令牌,第三级令牌桶为流量保障令牌桶,符合三级准入条件的令牌桶才能在第三级令牌桶中获取令牌,而符合二级准入条件的业务请求才能够进入判断是否符合三级准入条件的流程,也即,在各级令牌桶中的令牌数量充足的前提下,能够在第三级令牌桶中获取令牌的业务请求也能在第一级令牌桶和第二级令牌桶中获取
令牌,能够在第二级令牌桶中获取令牌的业务请求也能在第一级令牌桶中获取令牌。
95.第二重要类型可以为与上述第一重要类型结合进行划分的类型,例如,将第二重要类型设置为核心业务类型,第一重要类型设置为重要业务类型,都是相对于普通业务类型的设置。而对于第二高频请求类型,也可以结合第一高频请求类型进行设置,例如,将第一级令牌桶、第二级令牌桶和第三级令牌桶之间的接口请求次数的划分比例定为5:3:2,根据设定的时间窗口内的接口访问量排序,请求次数在前20%的接口为三级接口,添加至三级布隆过滤器中,请求次数在20%-50%的这30%比例的接口为二级接口,请求次数在后50%的接口为一级接口。将三级接口的请求次数作为第二高频请求类型的判断依据,业务请求的接口为三级接口,则可以判断为第二高频请求类型,确定在三级布隆过滤器中存在。
96.假设服务最大tps(transactions per second,每秒传输的事物处理个数)为a,最佳tps为b,还可以此为依据设置各级令牌桶的大小。例如,第三级令牌桶为流量保障令牌桶,设置桶大小为2*(a-b)/10,每秒产生令牌个数为b/5个/秒,第三级令牌桶接受三级接口的业务请求;第二级令牌桶为流量保护令牌桶,设置桶大小为3*(a-b)/10,每秒产生令牌个数为3*b/10个/秒,第二级令牌桶接受三级、二级接口的业务请求;第一级令牌桶为通用令牌桶,设置桶大小为5*(a-b)/10,每秒产生令牌数为b/2个/秒,第一级令牌桶接受一级、二级、三级接口的业务请求。
97.步骤s613,若所述业务类型为第二普通类型,且所述接口请求类型为第二低频请求类型,则确定所述业务场景在所述三级布隆过滤器中不存在。
98.第二普通类型可视为相对于第二重要类型重要程度更低的类型,第二低频请求类型可视为相对于第二高频请求类型请求次数更少的类型。在业务重要程度和请求次数均不满足对应要求的情况下,表示该业务场景在三级布隆过滤器中不存在。
99.步骤s62,若所述业务场景在所述三级布隆过滤器中存在,则确定所述业务场景符合所述三级准入条件;
100.在业务场景在三级布隆过滤器中存在的情况下,可以表示业务场景符合三级准入条件,该业务请求可以在第三级令牌桶中获取令牌,满足业务请求的执行需求。
101.步骤s63,若所述业务场景在所述三级布隆过滤器中不存在,则确定所述业务场景不符合所述三级准入条件。
102.在业务场景在三级布隆过滤器中不存在的情况下,可以确定该业务场景不符合三级准入条件,业务请求无法进入第三级令牌桶中获取令牌,此业务请求将被限流。
103.在本实施例中,设置更多层次的令牌桶进行限流,对业务请求的重要程度和请求次数进行细分,兼顾核心业务和高频业务的限流需求,实现限流场景的多样化。
104.进一步的,在本发明业务限流方法的第四实施例中,参照图5,该方法包括:
105.步骤s70,获取预设时间周期内的业务限流需求;
106.对于业务系统来说,业务繁忙可能是阶段性的,不同的阶段处理的高频业务不同,随着时间和政策的变化,业务的重要程度也会发生变化,因此,可以在某些时间对业务限流的策略进行调整。
107.预设时间周期可以为设置的定时的周期,例如,每个季度、每年,还可以为不定时间的周期,出现新的业务限流需求的时间距离上一次进行更新的间隔即为预设时间周期。业务限流需求可视为根据业务系统对业务请求的处理情况得到的需求,在业务系统的性能
一定的情况下,业务处理量越大,对限流的需求越高,可以根据实际的业务处理情况确定业务限流需求。
108.步骤s80,根据所述业务限流需求对所述二级准入条件进行调整。
109.针对性的,业务限流需求可以包括对业务请求重要程度的变更和接口请求次数的更新。例如,对于二级准入条件中的业务类型,将根据实际情况得到的业务限流需求,将原本属于第一普通类型的业务请求添加至第一重要类型中,又例如,将上述实施例中涉及的划分比例从8:2更改为7:3。不仅是二级准入条件,所有高级别令牌桶设置的准入条件都可以进行调整。
110.在本实施例中,根据预设时间周期内的业务限流需求对准入条件进行调整,可以适应实际业务处理情况对限流的要求,提高限流的灵活性。
111.在本发明业务限流方法的第五实施例中,参照图6,业务请求到达后,去第一级令牌桶中取令牌,取到令牌则执行业务请求,没取到令牌在执行下一步;判断业务请求是否在二级布隆过滤器中存在,不存在则返回请求被限流信息,存在则去第二级令牌桶获取令牌,取到令牌则执行请求,没取到令牌再执行下一步;判断业务请求是否在三级布隆过滤器中存在,不存在则返回请求被限流信息,存在则去第三级令牌桶获取令牌,令牌存在执行请求,令牌不存在,返回请求被限流信息。
112.本发明实施例还提供一种业务限流装置,如图7所示,所述业务限流装置包括:
113.接收模块101,用于接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;
114.判断模块102,用于若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;
115.获取模块103,用于若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;
116.限流模块104,用于若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。
117.可选地,判断模块102还用于:
118.判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在;
119.若所述业务场景在所述二级布隆过滤器中存在,则确定所述业务场景符合所述二级准入条件;
120.若所述业务场景在所述二级布隆过滤器中不存在,则确定所述业务场景不符合所述二级准入条件。
121.可选地,判断模块102还用于:
122.确定所述业务场景的业务类型和接口请求类型;
123.若所述业务类型为第一重要类型,或所述接口请求类型为第一高频请求类型,则确定所述业务场景在所述二级布隆过滤器中存在;
124.若所述业务类型为第一普通类型,且所述接口请求类型为第一低频请求类型,则确定所述业务场景在所述二级布隆过滤器中不存在。
125.可选地,业务限流装置还包括准入模块,用于:
126.若获取令牌成功,则执行所述业务请求;
127.若获取令牌失败,则判断所述业务场景是否符合第三级令牌桶的三级准入条件。
128.可选地,准入模块还用于:
129.判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在;
130.若所述业务场景在所述三级布隆过滤器中存在,则确定所述业务场景符合所述三级准入条件;
131.若所述业务场景在所述三级布隆过滤器中不存在,则确定所述业务场景不符合所述三级准入条件。
132.可选地,准入模块还用于:
133.确定所述业务场景的业务类型和接口请求类型;
134.若所述业务类型为第二重要类型,或所述接口请求类型为第二高频请求类型,则确定所述业务场景在所述三级布隆过滤器中存在;
135.若所述业务类型为第二普通类型,且所述接口请求类型为第二低频请求类型,则确定所述业务场景在所述三级布隆过滤器中不存在。
136.可选地,业务限流装置还包括调整模块,用于:
137.获取预设时间周期内的业务限流需求;
138.根据所述业务限流需求对所述二级准入条件进行调整。
139.本发明实施例还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的业务限流程序,所述业务限流程序配置为实现如上文所述的业务限流方法的步骤。本发明实施例电子设备的具体实施方式参见上述业务限流方法各实施例,在此不再赘述。
140.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有业务限流程序,所述业务限流程序被处理器执行时实现如上文所述的业务限流方法的步骤。本发明实施例计算机可读存储介质的具体实施方式参见上述业务限流方法各实施例,在此不再赘述。
141.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
142.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
143.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
144.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:
1.一种业务限流方法,其特征在于,所述业务限流方法包括以下步骤:接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。2.如权利要求1所述的业务限流方法,其特征在于,所述判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件的步骤包括:判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在;若所述业务场景在所述二级布隆过滤器中存在,则确定所述业务场景符合所述二级准入条件;若所述业务场景在所述二级布隆过滤器中不存在,则确定所述业务场景不符合所述二级准入条件。3.如权利要求2所述的业务限流方法,其特征在于,所述判断所述业务场景在所述第二级令牌桶关联的二级布隆过滤器中是否存在的步骤包括:确定所述业务场景的业务类型和接口请求类型;若所述业务类型为第一重要类型,或所述接口请求类型为第一高频请求类型,则确定所述业务场景在所述二级布隆过滤器中存在;若所述业务类型为第一普通类型,且所述接口请求类型为第一低频请求类型,则确定所述业务场景在所述二级布隆过滤器中不存在。4.如权利要求1所述的业务限流方法,其特征在于,在若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌的步骤之后,所述方法还包括:若获取令牌成功,则执行所述业务请求;若获取令牌失败,则判断所述业务场景是否符合第三级令牌桶的三级准入条件。5.如权利要求4所述的业务限流方法,其特征在于,所述判断所述业务场景是否符合第三级令牌桶的三级准入条件的步骤包括:判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在;若所述业务场景在所述三级布隆过滤器中存在,则确定所述业务场景符合所述三级准入条件;若所述业务场景在所述三级布隆过滤器中不存在,则确定所述业务场景不符合所述三级准入条件。6.如权利要求5所述的业务限流方法,其特征在于,所述判断所述业务场景在所述第三级令牌桶关联的三级布隆过滤器中是否存在的步骤包括:确定所述业务场景的业务类型和接口请求类型;若所述业务类型为第二重要类型,或所述接口请求类型为第二高频请求类型,则确定所述业务场景在所述三级布隆过滤器中存在;若所述业务类型为第二普通类型,且所述接口请求类型为第二低频请求类型,则确定所述业务场景在所述三级布隆过滤器中不存在。7.如权利要求1-6中任一项所述的业务限流方法,其特征在于,所述业务限流方法还包
括:获取预设时间周期内的业务限流需求;根据所述业务限流需求对所述二级准入条件进行调整。8.一种业务限流装置,其特征在于,所述业务限流装置包括:接收模块,用于接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;判断模块,用于若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;获取模块,用于若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;限流模块,用于若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。9.一种电子设备,其特征在于,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的业务限流程序,所述业务限流程序配置为实现如权利要求1至7中任一项所述的业务限流方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有业务限流程序,所述业务限流程序被处理器执行时实现如权利要求1至7中任一项所述的业务限流方法的步骤。

技术总结
本发明公开了一种业务限流方法、装置、电子设备及存储介质,属于数据处理技术领域,该方法包括:接收业务请求,根据所述业务请求在第一级令牌桶中获取令牌;若获取令牌失败,则判断与所述业务请求关联的业务场景是否符合第二级令牌桶的二级准入条件;若所述业务场景符合所述二级准入条件,则在所述第二级令牌桶中获取令牌;若所述业务场景不符合所述二级准入条件,则对所述业务请求进行限流。本发明通过设置多级令牌桶进行限流,实现了提高限流准确性的技术效果。确性的技术效果。确性的技术效果。


技术研发人员:刘奇 陈晓 周刚
受保护的技术使用者:招商银行股份有限公司
技术研发日:2023.07.20
技术公布日:2023/10/5
版权声明

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

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

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

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

分享:

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

相关推荐