流量控制方法、装置、电子设备、介质及程序产品与流程
未命名
07-14
阅读:207
评论: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.可选的,所述流量控制装置还包括:
41.第二业务请求量确定模块,用于如果对所述多个上游业务节点进行限流处理的时刻为第一时刻,经过预设时间段之后的时刻为第二时刻,确定所述多个上游业务节点在所述第二时刻分别对应的第二业务请求量;
42.所述限流处理模块,还用于如果所述多个上游业务节点分别对应的第二业务请求量之和小于预设请求量,则解除对所述上游业务节点的流量限制,其中,所述预设请求量小于所述当前业务节点的业务请求承受量。
43.可选的,所述历史业务请求量确定模块,具体用于如果基于多个所述第一业务请求量确定所述业务请求失败,确定所述多个上游业务节点在第一历史时刻分别对应的历史业务请求量;其中,所述第一历史时刻与所述当前时刻对应不同日期的同一时刻;针对单个所述上游业务节点,将所述上游业务节点在第一历史时刻对应的第一历史业务请求量,确定为所述上游业务节点对应的历史业务请求量;或者,
44.确定所述多个上游业务节点在多个第二历史时刻分别对应的第二历史业务请求量;针对单个所述上游业务节点,将多个第二历史业务请求量的平均值,确定为所述上游业务节点对应的历史业务请求量。
45.根据本公开的第三方面,提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
46.根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
47.根据本公开的第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面所述的方法。
48.本公开实施例提供的技术方案与现有技术相比具有如下优点:
49.在多个上游业务节点均依赖于当前业务节点的情况下,当前业务节点可以确定各个上游业务节点在当前时刻的第一业务请求量,如果基于第一业务请求量确定业务请求失败,确定各个上游业务节点分别对应的历史业务请求量,并根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。本公开在基于第一业务请求量确定业务请求失败的情况下再对各个上游业务节点进行限流处理。相较于现有技术中对各个上游业务节点分配限流额度,即使某些上游业务节点业务请求量增长较多,如果其他上游业务节点业务请求量减少,也可以不进行限流处理,即不会导致业务请求失败的问题,以充分利用当前业务节点的流量资源,提高资源的利用率。同时,参考各个上游业务节点的历史业务请求量和当前时刻的第一业务请求量进行限流处理。例如,可以根据各个上游业务节点的业务请求增长情况进行限流,这样,对各个上游业务节点的限流更合理,提高限流的准确性。
附图说明
50.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
51.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
52.图1示出了可以应用于本公开实施例的流量控制方法的示例性应用环境的系统架构的示意图;
53.图2为本公开实施例中流量控制方法的一种流程图;
54.图3为本公开实施例中流量控制的一种示意图;
55.图4为本公开实施例中流量控制方法的又一种流程图;
56.图5为本公开实施例中流量控制装置的一种结构示意图;
57.图6为本公开实施例中电子设备的一种结构示意图。
具体实施方式
58.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
59.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
60.图1示出了可以应用于本公开实施例的流量控制方法的示例性应用环境的系统架构的示意图。
61.如图1所示,系统架构100可以包括上游业务节点101、上游业务节点102、上游业务节点103中的多个,网络104和当前业务节点105。网络104用以在上游业务节点101、上游业务节点102、上游业务节点103和当前业务节点105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。上游业务节点101、上游业务节点102、上游业务节点103和当前业务节点105可以为分布式系统中的业务节点,上游业务节点101、上游业务节点102、上游业务节点103依赖当前业务节点105,位于当前业务节点105的上游,因此可以称之为上游业务节点。应该理解,图1中的上游业务节点的数量仅仅是示意性的。根据实现需要,可以具有任意数量的上游业务节点。
62.上游业务节点101、上游业务节点102、上游业务节点103可以根据业务需求向当前业务节点105发送业务请求。相关技术中,可以分别为上游业务节点101、上游业务节点102、上游业务节点103分配第一限流额度、第二限流额度和第三限流额度。在上游业务节点101发出/发送的的业务请求量超过第一限流额度的情况下,对上游业务节点101进行限流处理。同样地,在上游业务节点102发出的业务请求量超过第二限流额度的情况下,对上游业务节点102进行限流处理,在上游业务节点103的发出的业务请求量超过第三限流额度的情况下,对上游业务节点103进行限流处理。
63.本公开实施例中,当上游业务节点101、上游业务节点102、上游业务节点103的发
出的总业务请求量(也即当前业务节点105接收到的业务请求量)在当前业务节点105自身所能承受的能力范围内时,可以对各个业务请求进行响应,当当前业务节点105接收到的总业务请求量超出当前业务节点105自身所能承受的能力范围时,可以利用本公开实施例的限流方法对上游业务节点101、上游业务节点102、上游业务节点103进行限流处理,以提高当前业务节点105流量资源的利用率,并提高限流的准确性。本公开实施例所提供的流量控制方法一般由当前业务节点105执行,相应地,流量控制装置可以设置于当前业务节点105中。
64.以下首先对本公开实施例的流量控制方法进行介绍。
65.参见图2,图2为本公开实施例中流量控制方法的一种流程图,应用于当前业务节点,可以包括以下步骤:
66.步骤s210,接收当前业务节点的多个上游业务节点发送的业务请求,确定多个上游业务节点在当前时刻分别对应的第一业务请求量。
67.当前业务节点可以是分布式系统中被多个其他业务节点依赖的业务节点,分布式系统中依赖于该当前业务节点的其他业务节点即为该当前业务节点的上游业务节点。上游业务节点的数量可以为多个,不同的上游业务节点根据业务需求,均可以向该当前业务节点发送业务请求。
68.可以理解的是,当多个上游业务节点的发送的业务请求量较多时,即多个上游业务节点发送的业务请求量之和超过当前业务节点的业务请求承受量,也即当前业务节点的接收到的业务请求量超过当前业务节点的业务请求承受量,当前业务节点将无法对多个上游业务节点的全部业务请求进行处理,将会发生业务请求失败的情况。因此,当前业务节点可以确定多个上游业务节点在当前时刻分别对应的第一业务请求量,以根据第一业务请求量确定是否超出自身的承受能力。其中,第一业务请求量可以包括每秒查询率等。
69.步骤s220,如果基于第一业务请求量确定业务请求失败,确定多个上游业务节点分别对应的历史业务请求量。
70.本公开实施例中,如果多个上游业务节点的第一业务请求量之和小于等于当前业务节点的业务请求承受量,表示当前业务请求在当前业务节点的承受能力之内,可以直接对业务请求进行处理。如果多个上游业务节点的第一业务请求量之和大于当前业务节点的业务请求承受量,表示当前业务请求已经超出了当前业务节点的承受能力,业务请求将会失败。此时,可以对上游业务节点进行限流。业务请求承受量是当前业务节点最大可以承受的业务请求量,可以通过压测的方式获得当前业务节点的业务请求承受量。
71.参见图3,图3为本公开实施例中流量控制的一种示意图,上游业务节点a和上游业务节点b均向当前业务节点c发送业务请求。假设当前业务节点c能承受的总每秒查询率为10w/s,当前时刻上游业务节点a的每秒查询率为5w/s,上游业务节点b的每秒查询率为8w/s,两者之和超过当前业务节点c的承受能力,当前业务节点c将会对上游业务节点a和上游业务节点b进行限流处理。
72.本公开为了对各个上流业务节点进行更合理、准确地限流,可以确定多个上游业务节点分别对应的历史业务请求量,结合各个上游业务节点的历史业务请求量进行限流。由于用户在不同时刻访问同一业务时对应的业务请求量通常会不同,因此,在一种可选的实施方式中,可以确定多个上游业务节点在第一历史时刻分别对应的历史业务请求量,针
对单个上游业务节点,将上游业务节点在第一历史时刻对应的第一历史业务请求量,确定为上游业务节点对应的历史业务请求量。其中,第一历史时刻与当前时刻可以对应不同日期的同一时刻。例如,如果当前时刻为20:00,第一历史时刻可以是前一天的20:00。这样,与其他时刻(例如当天的6:00、前一天的23:00等)相比,所确定的历史业务请求量的准确性更高,更具有参考性。相应地,在限流处理时,可以提高限流的准确性。
73.或者,也可以确定多个上游业务节点在多个第二历史时刻分别对应的第二历史业务请求量。针对单个上游业务节点,将多个第二历史业务请求量的平均值,确定为上游业务节点对应的历史业务请求量。其中,第二历史时刻可以是任意的历史时刻,或者第二历史时刻也可以是与当前时刻对应不同日期的同一时刻。例如,如果当前时刻为20:00,第二历史时刻可以是前一天、前两天、前三天的20:00。这样,通过计算三个第二历史时刻分别对应的第二历史业务请求量的平均值,将该平均值作为上游业务节点对应的历史业务请求量,可以进一步提高历史业务请求量确定的准确性。
74.步骤s230,根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。
75.在得到各个上游业务节点在当前时刻对应的第一业务请求量和在历史时刻对应的历史业务请求量后,可以对各个上游业务节点的业务请求情况进行分析,以确定如何对多个上游业务节点进行限流处理。例如,当某上游业务节点的业务请求增长量较大时,可以拒绝该上游业务节点的业务请求。当某上游业务节点的业务请求增长量较小或增长量为负值时,可以不拒绝该上游业务节点的业务请求。当然,在对多个上游业务节点进行限流处理时,还可以参考各个上游业务节点的重要程度等,以进一步提高限流处理的准确性。例如,某个上游业务节点a比较重要,剩余其他上游业务节点相对不太重要,即使上游业务节点a的业务请求增长量较大,也可以对剩余其他上游业务节点进行限流处理,而不对上游业务节点a进行限流处理,或者对上游业务节点a进行较少的限流处理。
76.本公开实施例的流量控制方法,在多个上游业务节点均依赖于当前业务节点的情况下,当前业务节点可以确定各个上游业务节点在当前时刻的第一业务请求量,如果基于多个第一业务请求量确定业务请求失败,确定各个上游业务节点分别对应的历史业务请求量,并根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。本公开在基于第一业务请求量确定业务请求失败的情况下再对各个上游业务节点进行限流处理。相较于现有技术中对各个上游业务节点分配限流额度,即使某些上游业务节点业务请求量增长较多,如果其他上游业务节点业务请求量减少,也可以不进行限流处理,即不会导致业务请求失败的问题,以充分利用当前业务节点的流量资源,提高资源的利用率。同时,参考各个上游业务节点的历史业务请求量和当前时刻的第一业务请求量进行限流。例如,可以根据各个上游业务节点的业务请求增长情况进行限流,对各个上游业务节点的限流更合理,提高限流的准确性。
77.参见图4,图4为本公开实施例中流量控制方法的又一种流程图,应用于当前业务节点,可以包括以下步骤:
78.步骤s410,接收当前业务节点的多个上游业务节点发送的业务请求,确定多个上游业务节点在当前时刻分别对应的第一业务请求量。
79.步骤s420,如果基于第一业务请求量确定业务请求失败,确定多个上游业务节点
分别对应的历史业务请求量。
80.上述步骤s410~步骤s420与图2实施例中步骤s210~步骤s220相同,具体参见图2实施例中的描述即可,在此不再赘述。
81.步骤s430,根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。
82.本公开实施例中,确定各个上游业务节点在当前时刻的第一业务请求量和历史时刻的历史业务请求量,可以分析各个上游业务节点的业务增长情况,以根据业务增长情况对多个上游业务节点进行限流处理。
83.由于不同上游业务节点的业务请求量可能差异较大,业务请求量的增长量也会差异较大,因此,基于请求量增长比,可以公平、合理的对各个上游业务节点的业务请求进行限流。在一种可选的实施方式中,可以根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,确定多个上游业务节点分别对应的请求量增长比,根据请求量增长比,对多个上游业务节点进行限流处理。
84.针对单个上游业务节点,可以将第一业务请求量与历史业务请求量的差值与第一业务请求量的比值确定为请求量增长比。上游业务节点对应的请求量增长比越大,表明该上游业务节点的业务请求增长越明显。
85.可选的,在确定请求量增长比之后,可以根据请求量增长比,确定拒绝多个上游业务节点发送的业务请求的概率,并根据该概率,对多个上游业务节点进行限流处理。针对单个上游业务节点,可以将该上游业务节点对应的请求量增长比,与所有上游业务节点对应的请求量增长比之和的比值,确定为拒绝该上游业务节点发送的业务请求的概率。可以理解的是,请求量增长比越大,对应的概率也可以越大。
86.例如,图3所示的上游业务节点a和上游业务节点b,如果上游业务节点a的业务请求量和上游业务节点b的业务请求量在不同的数量级,通过分别确定上游业务节点a和上游业务节点b的请求量增长比,并根据请求量增长比,确定拒绝上游业务节点a和上游业务节点b发送的业务请求的概率,可以充分考虑上游业务节点a和上游业务节点b之间业务量的差异性,从而更公平地对各个上游业务节点进行限流处理。
87.本公开实施例中,可以直接根据概率的大小对上游业务节点进行限流处理。例如,如果概率小于等于预设数值(例如0.2等,包括负值),对该概率对应的上游业务节点不进行限流处理。如果概率大于预设数值,则对该概率对应的上游业务节点进行限流处理等。
88.除此之外,还可以更合理地对各个上游业务节点进行限流。具体的,可以确定第一业务请求量之和与当前业务节点的业务请求承受量的差值。根据该差值与概率,确定上游业务节点的限流量,根据该限流量对上游业务节点进行限流。其中,限流量指所限制的流量,也就是拒绝的业务请求量,与前述的限流额度是不同的两个概念。
89.例如,可以直接将该差值与每个上游业务节点对应的概率相乘,得到每个上游业务节点的限流量。或者,还可以预先为各个上游业务节点分配权重,在此基础上,将该差值与概率相乘之后,进一步与所分配的权重相乘,得到各个上游业务节点对应的限流量。当然,各个上游业务节点对应的限流量之和大于等于该差值。
90.在又一种可选的实施方式中,还可以根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,确定多个上游业务节点分别对应的请求量增长量,根据请求
量增长量,对多个上游业务节点进行限流处理。例如,可以对请求量增长量按照从大到小的顺序进行排序,选取前n个请求量增长量对应的上游业务节点进行限流处理,剩余上游业务节点不进行限流处理,n可以小于上游业务节点的总数量。或者,也可以在单个上游业务节点的请求量增长量大于某一阈值的情况下,对该单个上游业务节点进行限流处理等等。根据请求量增长量,在一定程度上也可以提高限流的准确性。
91.类似地,也可以根据请求量增长量,确定拒绝多个上游业务节点发送的业务请求的概率,并根据该概率,对多个上游业务节点进行限流处理。其中,该概率可以与请求量增长量成正相关,即请求量增长量越大,对应的限流量可以越多。
92.需要说明的是,除了通过上述方式确定各个上游业务节点对应的限流量之外,也可以预先为各个上游业务节点设置对应的限流量。例如,上游业务节点的第一业务请求量和历史业务请求量越大,表示该上游业务节点越重要,上游业务节点对应的限流量可以越小。另外,限流量可以随着第一业务请求量之和与当前业务节点的业务请求承受量的差值的变化而变化。该差值越大,表示各个上游业务节点当前的业务请求量越多,相应地,上游业务节点对应的限流量也可以越大。
93.步骤s440,如果对多个上游业务节点进行限流处理的时刻为第一时刻,经过预设时间段之后的时刻为第二时刻,确定多个上游业务节点在第二时刻分别对应的第二业务请求量。
94.需要说明的是,由于业务请求随时间是不断变化的,当前总业务请求量超出自身的承受能力,在一段时间之后的总业务请求量,可能会在自身的承受能力内。因此,在预设时间段之后,可以确定多个上游业务节点在第二时刻分别对应的第二业务请求量,以根据第一业务请求量,确定是否解除对上游业务节点的流量限制。其中,预设时间段可以是根据经验预先设置的时间段,例如可以是5分钟、10分钟等,在此不做限定。
95.步骤s450,如果多个上游业务节点分别对应的第二业务请求量之和小于预设请求量,则解除对上游业务节点的流量限制。
96.如果第二业务请求量之和小于预设请求量,而预设请求量小于当前业务节点的业务请求承受量,此时表示经过预设时间段之后,上游业务节点的业务请求量的减少量较大,可以解除对上游业务节点的流量限制,以提高对当前业务节点流量资源的利用率。其中,预设请求量可以是业务请求承受量的90%等。
97.本公开实施例的流量控制方法,可以不对各个上游业务节点分配限流额度,而是参考各个上游业务节点的历史业务请求量和当前时刻的第一业务请求量进行限流。可以根据各个上游业务节点的业务请求增长量或业务请求增长比进行限流,例如,可以根据请求量增长比,确定拒绝多个上游业务节点发送的业务请求的概率,并根据该概率,对多个上游业务节点进行限流处理。本公开对各个上游业务节点的限流更合理,可以提高限流的准确性。并且,在预设时间段之后,还可以进一步确定多个上游业务节点分别对应的第二业务请求量,以在第二业务请求量之和小于预设请求量的情况下,解除对上游业务节点的流量限制,从而提高对当前业务节点流量资源的利用率。
98.相应于上述方法实施例,本公开实施例还提供了一种流量控制装置,应用于当前业务节点,参见图5,流量控制装置500包括:
99.第一业务请求量确定模块510,用于接收当前业务节点的多个上游业务节点发送
的业务请求,确定多个上游业务节点在当前时刻分别对应的第一业务请求量;
100.历史业务请求量确定模块520,用于如果基于多个第一业务请求量确定业务请求失败,确定多个上游业务节点分别对应的历史业务请求量;
101.限流处理模块530,用于根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。
102.可选的,限流处理模块530,具体用于根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,确定多个上游业务节点分别对应的请求量增长比;根据请求量增长比,对多个上游业务节点进行限流处理;或者,
103.根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,确定多个上游业务节点分别对应的请求量增长量;根据请求量增长量,对多个上游业务节点进行限流处理。
104.可选的,限流处理模块530,具体用于通过下述步骤实现根据请求量增长比或请求量增长量,对多个上游业务节点进行限流处理:
105.根据请求量增长比或请求量增长量,确定拒绝多个上游业务节点发送的业务请求的概率;
106.根据概率,对多个上游业务节点进行限流处理。
107.可选的,限流处理模块530,具体用于通过下述步骤实现根据概率,对多个上游业务节点进行限流处理:
108.确定第一业务请求量之和与当前业务节点的业务请求承受量的差值;
109.根据差值与概率,确定上游业务节点的限流量,根据限流量对上游业务节点进行限流。
110.可选的,流量控制装置500还包括:
111.第二业务请求量确定模块,用于如果对多个上游业务节点进行限流处理的时刻为第一时刻,经过预设时间段之后的时刻为第二时刻,确定多个上游业务节点在第二时刻分别对应的第二业务请求量;
112.限流处理模块530,还用于如果多个上游业务节点分别对应的第二业务请求量之和小于预设请求量,则解除对上游业务节点的流量限制,其中,预设请求量小于当前业务节点的业务请求承受量。
113.可选的,历史业务请求量确定模块520,具体用于如果基于多个第一业务请求量确定业务请求失败,确定多个上游业务节点在第一历史时刻分别对应的历史业务请求量;其中,第一历史时刻与当前时刻对应不同日期的同一时刻;针对单个上游业务节点,将上游业务节点在第一历史时刻对应的第一历史业务请求量,确定为上游业务节点对应的历史业务请求量;或者,
114.确定多个上游业务节点在多个第二历史时刻分别对应的第二历史业务请求量;针对单个上游业务节点,将多个第二历史业务请求量的平均值,确定为上游业务节点对应的历史业务请求量。
115.上述装置中各模块或单元的具体细节已经在对应的方法中进行了详细的描述,因此此处不再赘述。
116.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单
元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
117.在本公开的示例性实施例中,还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行本示例实施方式中上述流量控制方法。
118.图6为本公开实施例中电子设备的一种结构示意图。需要说明的是,图6示出的电子设备600仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
119.如图6所示,电子设备600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统操作所需的各种程序和数据。中央处理单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
120.以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如局域网(lan)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
121.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元601执行时,执行本公开的装置中限定的各种功能。
122.本公开实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述流量控制方法。
123.需要说明的是,本公开所示的计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器、只读存储器、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频等等,或者上述的任意合适的组合。
124.本公开实施例中,还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述流量控制方法。
125.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
126.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种流量控制方法,其特征在于,应用于当前业务节点,所述方法包括:接收所述当前业务节点的多个上游业务节点发送的业务请求,确定所述多个上游业务节点在当前时刻分别对应的第一业务请求量;如果基于所述第一业务请求量确定所述业务请求失败,确定所述多个上游业务节点分别对应的历史业务请求量;根据所述多个上游业务节点分别对应的第一业务请求量以及所述历史业务请求量,对所述多个上游业务节点进行限流处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述多个上游业务节点分别对应的第一业务请求量以及所述历史业务请求量,对所述多个上游业务节点进行限流处理,包括:根据所述多个上游业务节点分别对应的第一业务请求量以及所述历史业务请求量,确定所述多个上游业务节点分别对应的请求量增长比;根据所述请求量增长比,对所述多个上游业务节点进行限流处理;或者,根据所述多个上游业务节点分别对应的第一业务请求量以及所述历史业务请求量,确定所述多个上游业务节点分别对应的请求量增长量;根据所述请求量增长量,对所述多个上游业务节点进行限流处理。3.根据权利要求2所述的方法,其特征在于,所述根据所述请求量增长比或所述请求量增长量,对所述多个上游业务节点进行限流处理,包括:根据所述请求量增长比或所述请求量增长量,确定拒绝所述多个上游业务节点发送的业务请求的概率;根据所述概率,对所述多个上游业务节点进行限流处理。4.根据权利要求3所述的方法,其特征在于,所述根据所述概率,对所述多个上游业务节点进行限流处理,包括:确定所述第一业务请求量之和与所述当前业务节点的业务请求承受量的差值;根据所述差值与所述概率,确定所述上游业务节点的限流量,根据所述限流量对所述上游业务节点进行限流。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果对所述多个上游业务节点进行限流处理的时刻为第一时刻,经过预设时间段之后的时刻为第二时刻,确定所述多个上游业务节点在所述第二时刻分别对应的第二业务请求量;如果所述多个上游业务节点分别对应的第二业务请求量之和小于预设请求量,则解除对所述上游业务节点的流量限制,其中,所述预设请求量小于所述当前业务节点的业务请求承受量。6.根据权利要求1所述的方法,其特征在于,所述确定所述多个上游业务节点分别对应的历史业务请求量,包括:确定所述多个上游业务节点在第一历史时刻分别对应的历史业务请求量;其中,所述第一历史时刻与所述当前时刻对应不同日期的同一时刻;针对单个所述上游业务节点,将所述上游业务节点在第一历史时刻对应的第一历史业务请求量,确定为所述上游业务节点对应的历史业务请求量;或者,
确定所述多个上游业务节点在多个第二历史时刻分别对应的第二历史业务请求量;针对单个所述上游业务节点,将多个第二历史业务请求量的平均值,确定为所述上游业务节点对应的历史业务请求量。7.一种流量控制装置,其特征在于,应用于当前业务节点,所述装置包括:第一业务请求量确定模块,用于接收所述当前业务节点的多个上游业务节点发送的业务请求,确定所述多个上游业务节点在当前时刻分别对应的第一业务请求量;历史业务请求量确定模块,用于如果基于所述第一业务请求量确定所述业务请求失败,确定所述多个上游业务节点分别对应的历史业务请求量;限流处理模块,用于根据所述多个上游业务节点分别对应的第一业务请求量以及所述历史业务请求量,对所述多个上游业务节点进行限流处理。8.一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的流量控制方法。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的流量控制方法。10.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行权利要求1-6任一项所述的流量控制方法。
技术总结
本公开涉及一种流量控制方法、装置、电子设备、介质及程序产品,应用于互联网技术领域,所述方法包括:接收当前业务节点的多个上游业务节点发送的业务请求,确定多个上游业务节点在当前时刻分别对应的第一业务请求量;如果基于第一业务请求量确定业务请求失败,确定多个上游业务节点分别对应的历史业务请求量;根据多个上游业务节点分别对应的第一业务请求量以及历史业务请求量,对多个上游业务节点进行限流处理。本公开可以提高限流的准确性,并提高当前业务节点资源的利用率。高当前业务节点资源的利用率。高当前业务节点资源的利用率。
技术研发人员:许凤强
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2021.12.30
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
